■サーブレットメモ
サーブレットで遊ぶ。
環境
Linux: CentOS 4.2
Java: J2SDK 1.4.2_09
1.インストール
tomcatの最新版5.5.15をインストールする。ダウンロードは
こちらから。Javaの環境が1.4系のため、コアパッケージとコンパチのパッケージJDK 1.4 Compatability Packageをダウンロードする。
まず、コアパッケージを解凍する。解凍先は$HOME/tomtestとする。次に、コンパチのパッケージを解凍する。コンパチの方は次のファイルが入っている。
bin
|
+--jmx.jar
common
|
+-- endorsed
|
+-- xerceslmpl.jar
+-- xml-apis.jar
これらをコアパッケージのそれぞれbinとcommon-endorsedの中にコピーする。
2.環境変数の設定
環境変数の設定を行なう。bashなので、.bash_profileあたりに、
export CATALINA_HOME=$HOME/tomtest/apache-tomcat-5.5.15
export JAVA_HOME=/opt/j2sdk1.4.2_09
を追加する。JAVA_HOMEは環境により異なる。
3.Tomcatの設定
confフォルダの中にあるweb.xmlを編集する。
servletタグの中にinvokerタグが入っている部分のコメントを外す。
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
さらに、servlet-mappingタグの中にinvokerタグが入っている部分もコメントをはずす。
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
これらはそれぞれ、100行、338行程の場所にある。
次に、server.xmlの編集を行なう。最後の</HOST>の前に以下の二行を追加する。
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="/tomtest" docBase="tomtest" debug="0"
reloadable="true" crossContext="true" />
tomtestはインストール先のディレクトリ名である。
4.ディレクトリの作成
classファイルをおくディレクトリを作成する。
mkdir -p $CATALINA_HOME/webapps/tomtest/WEB-INF/classes/
servletのクラスファイルはこのディレクトリにおき、JSPは$CATALINA_HOME/webapps/tomtestの中におく。
5.クラスライブラリのインストール
以下のクラスライブラリをJREの$JAVA_HOME/jre/lib/extにコピーする。なお、この作業はスーパーユーザーで行なう。
$CATALINA_HOME/common/lib/servlet-api.jar
$CATALINA_HOME/common/lib/jsp-api.jar
6.インストール完了
以上でインストールは完了。apacheが入っていることを確認して、起動を行なう。
7.起動と終了
起動は$CATALINA_HOME/bin/startup.sh、終了は$CATALINA_HOME/bin/shutdown.shで
行なう。
■サーブレット
サーブレットの簡単なサンプル。
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Cal extends HttpServlet {
int counter=0;
public void doGet( HttpServletRequest request, HttpServletResponse response )
throws IOException, ServletException{
counter++;
// calendar
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int date = cal.get(Calendar.DATE);
response.setContentType("text/html; charset=UTF-8");
PrintWriter pw = response.getWriter();
pw.println("<html> <body>");
pw.println("testですぅ<br>");
pw.println(counter+"回読みこまれたですぅ <BR>");
pw.println("今日は"+year+"年"+month+"月"+date+"日ですぅ <BR>");
pw.println("</body> </html> ");
}
}
これを$CATALINA_HOME/webapps/tomtest/WEB-INF/classesにおいて、コンパイルする。
■JSP
JSPの簡単なサンプル。フォームから入力を受け取って表示する(text.jsp)。
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head><title>フォームのテスト</title></head>
<body>
<center>
文字を入力するですぅ<BR>
<form action="Text.jsp" method="POST">
<input type="text" name="yourName" value=""><BR>
<input type="submit" value="OK">
<input type="reset" value="Cancel"><br>
</form>
<%
String yourName="";
String strName="";
if( request.getParameter("yourName") != null){
// strName = new String(request.getParameter("yourName").getBytes("UTF-8"),"JISAutoDetece");
strName = new String(request.getParameter("yourName"));
if( strName.length() > 0 ){
yourName = strName;
} else {
yourName = "ない";
}
out.println("入力は" + yourName + "ですぅ" );
}
%>
</center>
</body>
</html>
なお、最後のファイル名まで指定しないとnot availableのエラーになる。
■参考
最終更新:2006年11月08日 13:51