■サーブレットメモ

サーブレットで遊ぶ。

環境
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で
行なう。

起動し、Webブラウザでhttp://localhost:8080で猫の絵が出てくれば成功である。


■サーブレット

サーブレットの簡単なサンプル。

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において、コンパイルする。

そして、http://localhost:8080/tomtest/servlet/Calでアクセスする。



■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>


文字コードはUTF-8で保存。これを$CATALINA_HOME/webapps/tomtestにおいて、http://localhost:8080/tomtest/text.jspとしてアクセス。

なお、最後のファイル名まで指定しないとnot availableのエラーになる。



■参考

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2006年11月08日 13:51