「Java/Tomcat/サーブレットを作ってみる」の編集履歴(バックアップ)一覧に戻る

Java/Tomcat/サーブレットを作ってみる - (2013/03/22 (金) 04:27:10) のソース

* いきなりサンプルサーブレット - MyServlet.java
#highlight(){{
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
      IOException {
    PrintWriter out = resp.getWriter();
    out.println("<html>");
    out.println(" <head>");
    out.println("  <title>Hello!! MyServlet!!</title>");
    out.println(" </head>");
    out.println(" <body>");
    out.println("  Hello!! MyServlet!!");
    out.println(" </body>");
    out.println("</html>");
    out.flush();
  }
}
}}
- サーブレットはだいたい「HttpServlet」を継承して作ります。
- 「HttpServlet」はその名の通り、HTTPプロトコルに対応したサーブレットです。
-- ※HTTPプロトコル=ブラウザでwebサイトを見る時に通常使われるプロトコル
- 上記のサンプルは、HTTPのGETメソッドに対応したサーブレットです。
-- ※GETメソッド=ブラウザにURLを入力したり、リンクをクリックしたり、method="GET"になっているフォームを送信した時に使われるアクセス方法
- ブラウザからサーブレットにアクセスすると、doGetメソッドが実行され、「Hello!! MyServlet!!」が表示されます。
- 上記のサンプルは、サーブレットの中から直接htmlを出力するサンプルです。
- そして、サーブレットは作っただけではアクセス出来ません。
-- アクセスするにはweb.xmlを作成する必要があります。

* web.xml - からっぽ
#highlight(){{
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

</web-app>
}}
- まずは空のweb.xmlです。Tomcatインストールディレクトリの「conf/web.xml」をコピーしてきて、<web-app>タグの間を全部消しました。
- これを以下のように、Tomcatプロジェクトの「WEB-INF/web.xml」に配置します。
&ref(tomcat02-01.png)


* web.xml - サーブレットの宣言とマッピング追加
#highlight(){{
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

  <!-- サーブレットの宣言 -->
  <servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
  </servlet>

  <!-- サーブレットとurlのマッピング -->
  <servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/myservlet</url-pattern>
  </servlet-mapping>

</web-app>
}}
- <web-app>タグの間に、サーブレットの宣言と、urlのマッピングを追加します。
- サーブレットの宣言
-- <servlet-class>には、サーブレットのクラス名をパス名も含めた完全な名前で設定します。
-- <servlet-name>には、サーブレットに名前を設定します。ここで設定した名前が、urlマッピングで使用されます。
- サーブレットとurlのマッピング
-- <servlet-name>、サーブレットの宣言で付けたサーブレットの名前を設定します。
-- <url-pattern>には、サーブレットにアクセスするためのURLを設定します。
--- 「/hogehoge」と設定すると、「http://サーバー名/コンテキスト名/hogehoge」にブラウザでアクセスするとサーブレットにアクセスできます。
--- ※コンテキスト名:Tomcatプロジェクト名=コンテキスト名と設定することが多いですが、設定で別の名前にすることも出来ます。
- サーブレットは作っただけではアクセス出来ないので、サーブレットを作る度に宣言とマッピングをする必要があります。

* ブラウザで確認
- 「http://localhost:8080/Tomcat7Test/myservlet」にブラウザからアクセスして、以下のような画面が表示されれば成功です。
&ref(tomcat02-02.png)

#inc(Java/Tomcat/サンプル)

* コメント
#pcomment(reply)