基礎 Hello World

フォルダ構成

C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps
|
|-- HelloWorld/
|   |-- WEB-INF/
|   |   |-- classes
|   |   |   |-- foo/
|   |   |   |   `-- FooServlet.class
|   |   |   |
|   |   |   `-- HelloServlet.class
|   |   |
|   |   |-- src
|   |   |   |-- foo/
|   |   |   |   `-- FooServlet.class
|   |   |   |
|   |   |   `-- HelloServlet.java
|   |   |
|   |   |-- compile.bat
|   |   `-- web.xml
|   |
|   |-- META-INF/
|   |   `-- context.xml
|   |
|   |-- JspDir/
|   |   |-- xxx.jsp
|   |   `-- xxx.jsp
|   |
|   |-- zzz.html
|   |-- aaa.gif

HelloServlet?.javaを作成する

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet 
{
	public void doGet(HttpServletRequest request,HttpServletResponse response)
		throws IOException, ServletException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<HTML>");
		out.println("<BODY>");
		out.println("Hello World");
		out.println("</BODY>");
		out.println("</HTML>");
	}
}

FooServlet?.javaを作成する

package foo;

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class FooServlet extends HttpServlet 
{
	public void doGet(HttpServletRequest request,HttpServletResponse response)
		throws IOException, ServletException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<HTML>");
		out.println("<BODY>");
		out.println("Foo World");
		out.println("</BODY>");
		out.println("</HTML>");
	}
}

web.xmlを作成する

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>FooServlet</servlet-name>
        <servlet-class>foo.FooServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>FooServlet</servlet-name>
        <url-pattern>/FooServlet</url-pattern>
    </servlet-mapping>
</web-app>

servlet>タグ

  • <servlet-name>タグは、サーブレットの名前
  • <servlet-class>タグは、サーブレットのクラス名

servlet-mapping>タグ

  • <servlet-name>タグは、サーブレットの名前
  • <url-pattern>タグは、URLから呼び出す名前

なお、以下のURLで呼び出せる。
http://localhost:8080/HelloWorld/HelloServlet
http://localhost:8080/HelloWorld/FooServlet

コンパイル用バッチファイル(compile.bat)の作成

compile.batに以下を記述する。

@set CLASSPATH=C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar
javac -sourcepath src -d classes src/%1

なお、バッチファイルを利用しないコンパイル方法は以下となる

コマンドラインを起動しコンパイルする。

# set CLASSPATH=C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar
# cd C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\HelloWorld\WEB-INF
# javac src/HelloServlet.java -d classes

コマンドラインを起動しコンパイルする

# cd C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\HelloWorld\WEB-INF
# compile HelloServlet.java
# compile foo/FooServlet.java

オートリロードの設定(context.xmlの作成)を行う

reloadableをtrueにすると、プログラムに変更があった場合、自動的に再読み込みを行う。
ただし、動作が遅くなるので、開発時以外はfalseにする。

<Context
 docBase="C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\HelloWorld"
 reloadable="false"/>


Comment



Counter: 3881, today: 1, yesterday: 0

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:08 (1881d)