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 でコピーしていますが、  本格的なプロジェクトでは、ディレクトリ毎にユーザへアクセス権限を与えるはずなのでこの様にはなりません。