「apache_tomcat」の編集履歴(バックアップ)一覧はこちら
「apache_tomcat」(2009/02/21 (土) 01:52:09) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*&bold(){バージョン}
-apache 2.2.11(nossl)
-Tomcat 5.5.27
-JDK 6 update 12
-eclipse java ganymede SR1
&italic(){以下、[[こちら>http://www.javadrive.jp/servlet/index.html]]のサイトを参考にさせていただきました。}
*&bold(){JDKインストール}
&bold(){JDKインストール場所}
-C:\Program Files\Java\jdk1.6.0_12
&bold(){JREインストール場所}
-C:\Program Files\Java\jre6
*&bold(){JDKインストール後設定}
&bold(){PATHの追加}
-PATH=(既存の設定);C:\Program Files\Java\jdk1.6.0_12\bin
&bold(){JAVA_HOMEの設定}
-JAVA_HOME=C:\Program Files\Java\jdk1.6.0_12
*&bold(){Tomcatインストール}
&bold(){Choose Components}
-Normal
&bold(){Choose Install Location}
-C:\Program Files\Apache Software Foundation\Tomcat 5.5
&bold(){Java Virtual Machine}
-C:\Program Files\Java\jdk1.6.0_12
*&bold(){Tomcatインストール後設定}
&bold(){動作確認}
-http://localhost:8080/ にアクセスし、表示されることを確認する。
&bold(){CATALINA_HOMEの設定}
-CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 5.5
&bold(){サーブレットアプリケーションのコンパイル}
-javac -classpath "%CATALINA_HOME%\lib\servlet-api.jar" HelloWorld.java
※PATH変数、CATALINA_HOME変数が定義してあること。
*&bold(){アプリケーションの作成と配置}
&bold(){アプリケーションの構成}
-ディレクトリの作成
ルートディレクトリ c:\servlet-sample\helloworld\
c:\servlet-sample\helloworld\img
\WEB-INF
\WEB-INF\classes
-HTMLファイル作成
ファイル名 (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)
-classファイルの作成、配置
ファイル名 (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に格納する。
&bold(){コンテキストの設定}
-コンテキストの設定ファイルの作成
ファイル名 (%CATALINA_HOME%\conf\Catalina\localhost\)hello.xml
<Context path="/hello"
docBase="c:/servlet-sample/helloworld"/>
※docBase ルートディレクトリ
※path http://localhost:8080/hello/index.html
^^^^^
作成後、Tomcatを再起動する。
-HTMLの表示テスト
http://localhost:8080/hello/index.html にアクセスし、表示されることを確認する。
-Tomcat Managerでの確認
http://localhost:8080/ にアクセスし、画面左上段の「Tomcat Manager」をクリックする。
ログイン後、「アプリケーション」カテゴリの一覧に今回追加したコンテキスト(/hello)があることを確認する。
&bold(){web.xmlの記述}
-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を参考にする。
-http://localhost:8080/hello/helloworld にアクセスし、「HelloWorld」と表示されることを確認する。
*&bold(){サーブレットの基本}
&bold(){基本パッケージ}
-javax.servletパッケージ
インターフェース
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
-javax.servlet.httpパッケージ
インターフェース
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionActivationListener
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionContext
HttpSessionListener
クラス
Cookie
HttpServlet
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionBindingEvent
HttpSessionEvent
HttpUtil
&bold(){HttpServletクラスとメソッド}
-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)|
&bold(){サーブレットの基本形}
-HttpServletクラスの継承
public class HelloWorld extends HttpServlet{
・・・・
}
-HTTPメソッドに対応したメソッドの実装
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()どちらかでも良い。
&bold(){doGetメソッドとdoPostメソッド}
-&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index4.html]]を参照}
|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|
&bold(){サーブレットのライフサイクルとインスタンス変数}
-インスタンス変数を用いたサンプル
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;
}
}
この変数は全てのスレッドで共有して利用される変数ですので、同じ変数に対して別々のスレッドがそれぞれ参照したり値を変更したりする事が出来ます。
-インスタンス変数の簡単なサンプル
&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index5.html]]を参照}
|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|
&bold(){initメソッドとdestroyメソッド}
-initメソッド
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メソッドはインスタンス作成後に一度だけ呼ばれるメソッドですので、インスタンス変数の初期化などに利用します。
-destroyメソッド
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メソッドの簡単なサンプル
&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index6.html]]を参照}
|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|
*&bold(){クライアントへの出力(HttpServletResponse)}
&bold(){HttpServletResponseインターフェース}
&italic(){[[こちら>http://www.javadrive.jp/servlet/response/index1.html]]を参照}
&bold(){コンテンツタイプの設定(setContentType)}
|種類|拡張子|Content-Type|
|HTMLファイル|html, htm|text/html|
|テキストファイル|txt|text/plain|
|GIF|gif|image/gif|
|PNG|png|image/png|
|Windows 実行ファイル|exe|application/octet-stream|
response.setContentType("text/html");
※文字コードを指定する場合
response.setContentType("text/html;charset=Shift_JIS");
文字コードを設定しなかった場合には次のページで説明する通りデータ本文が「ISO-8859-1(Latin1)」でエンコードされます。その為、日本語を扱うデータの場合は文字化けしてしまいますので注意して下さい。
-文字セットの指定(setCharacterEncodingメソッド)
response.setContentType("text/html");
response.setCharacterEncoding("Shift_JIS");
上記は、「response.setContentType("text/html;charset=Shift_JIS");」と同じ
|URL(文字セット無し)|http://localhost:8080/sample/ResponseSample1|
| (文字セットあり)|http://localhost:8080/sample/ResponseSample2|
|アプリケーション配置場所|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|
&bold(){文字出力用のストリームの取得(getWriter)}
&italic(){次回はここから http://www.javadrive.jp/servlet/response/index3.html}
*&bold(){バージョン}
-apache 2.2.11(nossl)
-Tomcat 5.5.27
-JDK 6 update 12
-eclipse java ganymede SR1
&italic(){以下、[[こちら>http://www.javadrive.jp/servlet/index.html]]のサイトを参考にさせていただきました。}
*&bold(){JDKインストール}
&bold(){JDKインストール場所}
-C:\Program Files\Java\jdk1.6.0_12
&bold(){JREインストール場所}
-C:\Program Files\Java\jre6
*&bold(){JDKインストール後設定}
&bold(){PATHの追加}
-PATH=(既存の設定);C:\Program Files\Java\jdk1.6.0_12\bin
&bold(){JAVA_HOMEの設定}
-JAVA_HOME=C:\Program Files\Java\jdk1.6.0_12
*&bold(){Tomcatインストール}
&bold(){Choose Components}
-Normal
&bold(){Choose Install Location}
-C:\Program Files\Apache Software Foundation\Tomcat 5.5
&bold(){Java Virtual Machine}
-C:\Program Files\Java\jdk1.6.0_12
*&bold(){Tomcatインストール後設定}
&bold(){動作確認}
-http://localhost:8080/ にアクセスし、表示されることを確認する。
&bold(){CATALINA_HOMEの設定}
-CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 5.5
&bold(){サーブレットアプリケーションのコンパイル}
-javac -classpath "%CATALINA_HOME%\lib\servlet-api.jar" HelloWorld.java
※PATH変数、CATALINA_HOME変数が定義してあること。
*&bold(){アプリケーションの作成と配置}
&bold(){アプリケーションの構成}
-ディレクトリの作成
ルートディレクトリ c:\servlet-sample\helloworld\
c:\servlet-sample\helloworld\img
\WEB-INF
\WEB-INF\classes
-HTMLファイル作成
ファイル名 (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)
-classファイルの作成、配置
ファイル名 (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に格納する。
&bold(){コンテキストの設定}
-コンテキストの設定ファイルの作成
ファイル名 (%CATALINA_HOME%\conf\Catalina\localhost\)hello.xml
<Context path="/hello"
docBase="c:/servlet-sample/helloworld"/>
※docBase ルートディレクトリ
※path http://localhost:8080/hello/index.html
^^^^^
作成後、Tomcatを再起動する。
-HTMLの表示テスト
http://localhost:8080/hello/index.html にアクセスし、表示されることを確認する。
-Tomcat Managerでの確認
http://localhost:8080/ にアクセスし、画面左上段の「Tomcat Manager」をクリックする。
ログイン後、「アプリケーション」カテゴリの一覧に今回追加したコンテキスト(/hello)があることを確認する。
&bold(){web.xmlの記述}
-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を参考にする。
-http://localhost:8080/hello/helloworld にアクセスし、「HelloWorld」と表示されることを確認する。
*&bold(){サーブレットの基本}
&bold(){基本パッケージ}
-javax.servletパッケージ
インターフェース
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
-javax.servlet.httpパッケージ
インターフェース
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionActivationListener
HttpSessionAttributeListener
HttpSessionBindingListener
HttpSessionContext
HttpSessionListener
クラス
Cookie
HttpServlet
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionBindingEvent
HttpSessionEvent
HttpUtil
&bold(){HttpServletクラスとメソッド}
-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)|
&bold(){サーブレットの基本形}
-HttpServletクラスの継承
public class HelloWorld extends HttpServlet{
・・・・
}
-HTTPメソッドに対応したメソッドの実装
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()どちらかでも良い。
&bold(){doGetメソッドとdoPostメソッド}
-&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index4.html]]を参照}
|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|
&bold(){サーブレットのライフサイクルとインスタンス変数}
-インスタンス変数を用いたサンプル
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;
}
}
この変数は全てのスレッドで共有して利用される変数ですので、同じ変数に対して別々のスレッドがそれぞれ参照したり値を変更したりする事が出来ます。
-インスタンス変数の簡単なサンプル
&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index5.html]]を参照}
|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|
&bold(){initメソッドとdestroyメソッド}
-initメソッド
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メソッドはインスタンス作成後に一度だけ呼ばれるメソッドですので、インスタンス変数の初期化などに利用します。
-destroyメソッド
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メソッドの簡単なサンプル
&italic(){[[こちら>http://www.javadrive.jp/servlet/ini/index6.html]]を参照}
|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|