2007年10月17日水曜日

HttpServlet

サーブレットは javax.servlet.http.HttpServlet クラスを継承して
リクエストに対応した doXxxx メソッドをオーバーライドします。

<サンプル>
プロジェクトの構成

SCWCD
    + WEB-INF
        + src
            + sample
        + classes
             + sample
        web.xml


Sample1.java
import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class Sample1 extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

        PrintWriter out = res.getWriter();
        out.println("<html><body>");
        out.println("Hello");
        out.println("</body></html>");
    }
}

web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    <description>SCWCD</description>
    <display-name>SCWCD</display-name>
    <distributable />

    <servlet>
        <servlet-name>Sample1</servlet-name>
        <servlet-class>sample.Sample1</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Sample1</servlet-name>
        <url-pattern>/Sample1</url-pattern>
    </servlet-mapping>
</web-app>

http://localhost:8080/SCWCD/Sample1 へアクセス

<出力結果>
Hello

servlet タグ :    サーブレットに関する情報を定義
servlet-name :    サーブレットの名前
servlet-class :    サーブレットの完全修飾名(パッケージ.サーブレット名)
jsp ファイルを指定する場合は jsp-file タグを使用する

servlet-mapping タグ :    サーブレットと URI パターンをマッピングする
url-pattern :    サーブレットの URI パターンを定義する
http://ドメイン/プロジェクトルート/サーブレット名
でアクセスできるようになる。

distributable タグ
アプリケーションが分散環境で配備可能であることを定義する。

0 件のコメント: