tomcat 5.0.28 のサーブレットを作成 (Linux 版)
〜 いちばん単純なサーブレット 〜
2004-09-14 作成 福島
TOP > tips > servlet
HelloServlet を作ります。ついでに、HelloJSP も作ります。
この 2 つに関連はありません。
tomcat の場合、WEB アプリケーション名 (ここでは practice1 とします) で 1 つにまとめるので、その例です。
j2se 1.4.2 と tomcat 5.0.28 を使用します。
まだインストールしていない場合は、して下さい。
1. 下準備
$ vi $HOME/.bash_profile
| 
export JAVA_HOME=/usr/java/j2sdk1.4.2_05
export CATALINA_HOME=/usr/local/tomcat
 | 
$ . $HOME/.bash_profile     環境変数を有効にする
$ mkdir ./practice1                  --- HelloJSP.jsp を設置します
$ mkdir ./practice1/WEB-INF/         --- web.xml を設置します
$ mkdir ./practice1/WEB-INF/classes  --- HelloServlet.class (コンパイルされたバイトコード) を設置します
$ mkdir ./practice1/WEB-INF/lib      --- 今回は使いません
$ mkdir ./practice1/META-INF         --- 今回は使いません
2. ソースファイルの作成とコンパイル
$ vi HelloServlet.java
| 
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {     // HttpServlet から派生させます
    public void doGet(HttpServletRequest request,   // doGet をオーバーライドします
        HttpServletResponse response)
    throws IOException, ServletException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Hello Servlet.java</title></head>");
        out.println("<body>Hello Servlet.</body>");
        out.println("</html>");
    }
}
 | 
$ javac -classpath $CATALINA_HOME/common/lib/servlet-api.jar HelloServlet.java   コンパイルします
$ mv *.class ./practice1/WEB-INF/classes/.
3. 設定ファイルを作成
$ vi ./practice1/WEB-INF/web.xml
| 
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping>
</web-app>
 | 
4. HelloJSP.jsp を作成
$ vi ./practice1/HelloJSP.jsp            今回の「ついで」です
| 
<html>
<head><title>Hello JSP</title></head>
<body>
<%= new String("Hello JSP.") %>
</body>
</html>
 | 
5. tomcat が起動していなければ起動してください
$ su
# su - tomcat
tomcat$ $CATALINA_HOME/bin/startup.sh
tomcat$ exit
# exit
$
5-a. WEB アプリケーションを設置
WAR ファイルを作成する場合は、こちらではなく 5-b (下記) を行ってください。
$ su
# cp -pr ./practice1 $CATALINA_HOME/webapps/.
# exit
$
ここで、
http://サーバ名:8080/practice1/HelloJSP.jsp
http://サーバ名:8080/practice1/HelloServlet
をアクセスすると、それぞれ JSP とサーブレットが実行されます。
※ tomcat の再起動は不要です。
5-b. WAR (Web application ARchive) ファイルの作成と設置
WAR ファイルを作成しない場合は、こちらではなく 5-a (上記) を行ってください。
$ cd practice1
practice1$ jar -cf practice1.war *         WAR ファイルを作成
practice1$ su
practice1# cp -p practice1.war $CATALINA_HOME/webapps/.   WAR ファイルを設置
practice1# exit
practice1$
ここで、
http://サーバ名:8080/practice1/HelloJSP.jsp
http://サーバ名:8080/practice1/HelloServlet
をアクセスすると、それぞれ JSP とサーブレットが実行されます。
※ tomcat の再起動は不要です。
tomcat はアクセスされると自動的に practice1.war を解凍し、5-a と同様のディレクトリ構造を作成します。
※ 5-a,5-b では webapps/ に WEB アプリケーションを設置するため root でコピーしていますが、
 本格的なプロジェクトでは、ディレクトリ毎にユーザへアクセス権限を与えるはずなのでこの様にはなりません。