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