サーブレットを動かしてみる。


スポンサーリンク

サーブレットコンテナとは、サーブレットエンジンのことで、Webアプリケーションサーバとも呼ばれます。
サーブレットコンテナの上で動くプログラムをサーブレットアプリと呼びます。

Java EE準拠の代表的なWebアプリケーションサーバとしては、Tomcat, Jetty, GlassFish, JBoss, WebSphereなどがあります。

最も簡単なサーブレットを動かしてみます。
ディレクトリ構成はJava EEのルールで決められており、コンテキストルートの直下にWEB-INFを置きます。

f:id:sho322:20141227092537j:plain

ここの下にweb.xmlを置きます。


web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<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
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

  <servlet>
    <servlet-name>example</servlet-name>
    <servlet-class>sample.ExampleServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>example</servlet-name>
    <url-pattern>/example</url-pattern>
  </servlet-mapping>

</web-app>

servlet-nameは適当な名前をつけます。
これでweb.xml上でサーブレットを識別します。

servlet-classはJavaのファイルがある名前空間とクラスの名前を指定します。
完全修飾名で記述します。

で、url-patternっていうのは、servlet-nameで指定したクラスとURLのマッピングを行います。
マッチングのパターンは、
■完全一致
/example

■前方一致
/example/*

■拡張子の一致
/example/*.jsp

■デフォルト
/

などがあります。


ExampleServlet.java

package sample;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ExampleServlet extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		PrintWriter out = res.getWriter();
		out.print("<html><head><title>Sample Servlet</title></head>");
		out.print("<body><p>Example</p></body></html>");

	}
}

これをtomcatで動かすと、以下のように表示されます。

f:id:sho322:20141227092550j:plain