Java Servlet(サーブレット)の実装手順
2009/01/22 18:47Update
Java Servlet(サーブレット)の実装手順について解説します。
Java Servletの動作環境
1)Java環境(JDKやJRE)
2)サーブレット・コンテナー(TomcatやJBoss、WeblogicなどのWebサーバ)
Java環境の構築について、次の記事をご参照ください
Java開発及び実行環境の構築 | Linux篇 
Java開発及び実行環境の構築 | Windows篇 
TomcatやJBossサーバのインストールや環境設定について、ここでは省きます。
実装手順
以下、Java Servletの実装手順について解説します。
1)HttpServletから継承したクラスの作成
Servletを実装するのに、javax.servlet.http.HttpServletを継承したクラスを実装する必要があります。
例:
MyServlet.java
package mypackage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet { //HttpServletから継承するよ
//より高レベルのdoGetメソッドやdoPostなどのメソッドをoverride
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String paramUserId = req.getParameter("userId");
//...
String attrUserName = req.getParameter("userName");
//...
//... do some process here
//res.sendRedirect("/somepage")
req.getRequestDispatcher("/login.jsp").forward(req, res);
}
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
doGet(req, res);
}
}
上の例はただのサンプルなので、何の処理コードも書かれていません。実際の処理時、ロジックに応じてそのコードを書く必要があります。
2)web.xmlに登録
ただのServletクラスを定義するだけで、そのクラスがサーブレットとして認識されません。
Javaサーブレット仕様では、HttpServletから継承したクラスをサーブレットコンテナーに認識させるために、web.xmlというファイルにサーブレットの登録及びマッピングを行う必要があります。
例えば、Apache Tomcatサーバで、myservletというwebアプリケーションの場合
[Tomcatのインストール先フォルダ]\webapps\myservlet\WEB-INF\web.xml
例:
<?xml version="1.0" encoding="UTF-8"?> <!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>MyServlet</servlet-name> <!-- ①サーブレット名だよ --> <servlet-class>mypackage.MyServlet</servlet-class> <!-- ②サーブレットのクラス指定 --> <load-on-startup>1</load-on-startup> </servlet> <!-- ... --> <!-- サーブレット・マッピング定義 --> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <!-- ③上に記述したサーブレット名と一致にしてください --> <url-pattern>/someUrl</url-pattern> <!-- ④URLパタン --> </servlet-mapping> </web-app>
解説:
①サーブレット名を記述します。これはサーブレットの標識になります。
②サーブレットのクラス(どこにあるか)指定をします。
③サーブレットのマッピングを行います。マッピング先のサーブレット名で指定します。
④URLパタンを記述します。
例1:http://www.syboos.jp/someUrl?id=1
この場合、/someUrlはURLパタンになります。
例2:http://localhost:8080/myproject/someUrl?id=1
コンテキスト名はmyprojectである場合、/someUrlはURLパタンになります。
URLパタンにマッチするURLのリクエストは、マッピングされたサーブレットクラスに委譲されます。
例えば、http://www.syboos.jp/someUrl?id=1のリクエストの処理は、mypackage.MyServletに委譲されます。
これで、Servletの実装は完了です。
3)コンパイル
コンパイルについて、次の記事をご参照ください。
Java言語の基礎 - javacコマンドによるコンパイル
まだ、Eclipseなどの開発IDEを使う場合、より簡単にコンパイルできます。
4)デプロィ
サーブレットはWARやEARなどに含まれる形でTomcat、JBossなどサーバにデプロィすれば、使えるようになります。
今回は、最も簡単な形でTomcatにデプロィします。
フォルダに階層こうなります。
[Tomcatのインストール先フォルダ]\webapps\myservlet\WEB-INF\
web.xml
[Tomcatのインストール先フォルダ]\webapps\myservlet\WEB-INF\classes
\mypackage\MyServlet.class
Tomcatサーバを起動し、ブラウザーのアドレスに
http://localhost:8080/myservlet/someUrl
また、
http://www.yourdomain.com/myservlet/someUrl
をアクセスすれば、MyServletが動作していることを確認できます。
Sponsored Link
Comments
- Relative Articles
- Java開発及び実行環境の構築 | Linux篇 - (2008/08/31 20:34)
- Java開発及び実行環境の構築 | Windows篇 - (2008/08/31 21:18)
- 5分でJava Hello World! - (2008/08/31 22:13)
- Java言語の制御構文 - 条件分岐if/else/else if - (2008/10/01 21:30)
- Java言語の繰り返し制御構文 - for文 - (2008/10/03 18:22)
- Java言語の繰り返し制御構文 - do ... while文 - (2008/10/03 21:23)
- Java言語の繰り返し制御構文 - while文 - (2008/10/03 21:32)
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Java アクセス修飾子概要 - (2008/10/29 18:31)
- Javaアノテーション機能 概要 - (2009/02/12 13:06)