バージョン
- apache 2.2.11(nossl)
- Tomcat 5.5.27
- JDK 6 update 12
- eclipse java ganymede SR1
以下、こちらのサイトを参考にさせていただきました。
JDKインストール
JDKインストール場所
- C:\Program Files\Java\jdk1.6.0_12
JREインストール場所
- C:\Program Files\Java\jre6
JDKインストール後設定
PATHの追加
- PATH=(既存の設定);C:\Program Files\Java\jdk1.6.0_12\bin
JAVA_HOMEの設定
- JAVA_HOME=C:\Program Files\Java\jdk1.6.0_12
Tomcatインストール
Choose Components
Choose Install Location
- C:\Program Files\Apache Software Foundation\Tomcat 5.5
Java Virtual Machine
- C:\Program Files\Java\jdk1.6.0_12
Tomcatインストール後設定
動作確認
CATALINA_HOMEの設定
- CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 5.5
サーブレットアプリケーションのコンパイル
- javac -classpath "%CATALINA_HOME%\lib\servlet-api.jar" HelloWorld.java
※PATH変数、CATALINA_HOME変数が定義してあること。
アプリケーションの作成と配置
アプリケーションの構成
ルートディレクトリ c:\servlet-sample\helloworld\
c:\servlet-sample\helloworld\img
\WEB-INF
\WEB-INF\classes
ファイル名 (c:\servlet-sample\helloworld\)index.html
<html>
<head><title>HelloWorld</title></head>
<body>
<br>
<img src="./img/p1.png">
<a href="/hello/helloworld">クリックして下さい</a>
<br>
</body>
</html>
ファイル名 (c:\servlet-sample\helloworld\img\p1.png)
ファイル名 (c:\)HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}
で、コンパイルする。
javac -classpath "%CATALINA_HOME%\common\lib\servlet-api.jar" HelloWorld.java
で、できあがったHelloWorld.classをc:\servlet-sample\helloworld\WEB-INF\classesに格納する。
コンテキストの設定
ファイル名 (%CATALINA_HOME%\conf\Catalina\localhost\)hello.xml
<Context path="/hello"
docBase="c:/servlet-sample/helloworld"/>
http://localhost:8080/ にアクセスし、画面左上段の「Tomcat Manager」をクリックする。
ログイン後、「アプリケーション」カテゴリの一覧に今回追加したコンテキスト(/hello)があることを確認する。
web.xmlの記述
ファイル名 (c:\servlet-sample\helloworld\WEB-INF\)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>helloworld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>
※1~6行目までは、%CATALINA_HOME%\conf\web.xmlを参考にする。
サーブレットの基本
基本パッケージ
インターフェース
Filter
FilterChain
FilterConfig
RequestDispatcher
Servlet
ServletConfig
ServletContext
ServletContextAttributeListener
ServletContextListener
ServletRequest
ServletRequestAttributeListener
ServletRequestListener
ServletResponse
SingleThreadModel
クラス
GenericServlet
ServletContextAttributeEvent
ServletContextEvent
ServletInputStream
ServletOutputStream
ServletRequestAttributeEvent
ServletRequestEvent
ServletRequestWrapper
ServletResponseWrapper
Exceptions
ServletException
UnavailableException
インターフェース
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionActivationListener
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionContext
HttpSessionListener
クラス
Cookie
HttpServlet
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionBindingEvent
HttpSessionEvent
HttpUtil
HttpServletクラスとメソッド
HTTPメソッド |
メソッド |
GET |
protected void doGet(HttpServletRequest req, HttpServletResponse resp) |
POST |
protected void doPost(HttpServletRequest req, HttpServletResponse resp) |
PUT |
protected void doPut(HttpServletRequest req, HttpServletResponse resp) |
DELETE |
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) |
HEAD |
protected void doHead(HttpServletRequest req, HttpServletResponse resp) |
TRACE |
protected void doTrace(HttpServletRequest req, HttpServletResponse resp) |
OPTIONS |
protected void doOptions(HttpServletRequest req, HttpServletResponse resp) |
サーブレットの基本形
public class HelloWorld extends HttpServlet{
・・・・
}
public class HelloWorld extends HttpServlet{
public void doGet}(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
・・・・
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
・・・・
}
}
※doGet()、doPost()どちらかでも良い。
doGetメソッドとdoPostメソッド
URL |
http://localhost:8080/sample/Sample1 |
アプリケーション配置場所 |
c:\servlet-sample\sample\ |
web.xmlファイル |
c:\servlet-sample\sample\WEB-INF\web.xml |
コンテキストファイル |
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml |
サーブレットのライフサイクルとインスタンス変数
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sample extends HttpServlet {
int count = 0; // ←メソッド外に書かれた変数が「インスタンス変数」
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
int local_count = 0;
}
}
この変数は全てのスレッドで共有して利用される変数ですので、同じ変数に対して別々のスレッドがそれぞれ参照したり値を変更したりする事が出来ます。
URL |
http://localhost:8080/sample/Sample2 |
アプリケーション配置場所 |
c:\servlet-sample\sample\ |
web.xmlファイル |
c:\servlet-sample\sample\WEB-INF\web.xml |
コンテキストファイル |
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml |
initメソッドとdestroyメソッド
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sample extends HttpServlet {
public void init() throws ServletException{ // ←initメソッド
/* 初期化処理 */
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
/* ・・・・ */
}
}
initメソッドはインスタンス作成後に一度だけ呼ばれるメソッドですので、インスタンス変数の初期化などに利用します。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Sample extends HttpServlet {
public void init() throws ServletException{
/* 初期化処理 */
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
/* ・・・・ */
}
public void destroy(){ // ←destroyメソッド
/* 終了処理 */
}
}
- initメソッド、destroyメソッドの簡単なサンプル
URL |
http://localhost:8080/sample/Sample3 |
アプリケーション配置場所 |
c:\servlet-sample\sample\ |
web.xmlファイル |
c:\servlet-sample\sample\WEB-INF\web.xml |
コンテキストファイル |
C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\sample.xml |
ログファイル |
C:\Program Files\Apache Software Foundation\Tomcat 5.5\logs\localhost.[YYYY-MM-DD].log |
最終更新:2009年02月21日 01:52