tomcatの基本設定のまとめ。
Advertisements
■web.xmlについて
web.xmlのルートは
<servlet> <servlet-name>サーブレット名</servlet-name> <servlet-class>サーブレットクラス名</servlet-class> </servlet> <servlet-mapping> <servlet-name>サーブレット名</servlet-name> <url-pattern>マッピングするURLパターン</url-pattern> </servlet-mapping>
サーブレットの呼び出し
http://<ホスト名>:<ポート番号>/<コンテキストルート名>/
コンテキストルートとは、tomcatのwepappsの下に置かれるフォルダーのこと。
tomcatで一番最初に悩むのは環境設定だと思う。
eclipseを使うのはまだ後回しで、基本から見ていこう。
C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0.35>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 9061-B91A です C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0.35 のディレ クトリ 2012/04/28 23:03 <DIR> . 2012/04/28 23:03 <DIR> .. 2012/04/28 23:03 <DIR> bin 2012/09/13 23:06 <DIR> conf 2012/04/28 23:03 <DIR> lib 2012/04/28 23:03 38,657 LICENSE 2012/09/21 00:46 <DIR> logs 2012/04/28 23:03 574 NOTICE 2012/04/28 23:03 8,680 RELEASE-NOTES 2012/04/28 23:03 6,836 RUNNING.txt 2012/04/28 23:03 <DIR> temp 2012/09/21 00:22 <DIR> webapps 2012/04/28 23:38 <DIR> work 4 個のファイル 54,747 バイト 9 個のディレクトリ 146,112,778,240 バイトの空き領域 C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-6.0.35>
tomcat以下のディレクトリだが、webapps直下にあるフォルダーがコンテキストルートとなる。
繰り返すが、ブラウザで叩くのは、このような形式だ。
http://<ホスト名>:<ポート番号>/<コンテキストルート名>/
webapps以下にweb_compというコンテキストルートがあるとする。
その下に置くのは、WEB-INFというフォルダである。
└─web_comp └─WEB-INF ├─classes │ ├─chap1 │ └─chap2 └─src ├─chap1 └─chap2
フォルダーはこんな感じだ。
classesやsrcを置く。
重要なのがweb.xmlである。
これはコンテキストルート直下に置く。
└─web_comp └─WEB-INF │ web.xml │ ├─classes │ ├─chap1 │ │ Sample1_1.class │ │ │ └─chap2 │ Sample2_1.class │ └─src ├─chap1 │ Sample1_1.java │ └─chap2 Sample2_1.java
src以下にサーブレットのソースを書き、classes以下にコンパイルしたソースを格納する。
tomcatのbinフォルダがあると思うが、
その中のshutdown.bat→startup.batで変更が反映される。
http://localhost:8082/web_comp/2_1
とブラウザから入力すると、Sample2_1で書いたソースの結果がブラウザに表示される。
そのときのweb.xmlは以下の通り。
<?xml version="1.0" encoding="shift_jis"?> <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_2_5.xsd" version="2.5"> <servlet> <servlet-name>Sample1_1</servlet-name> <servlet-class>chap1.Sample1_1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample1_1</servlet-name> <url-pattern>/1_1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Sample2_1</servlet-name> <servlet-class>chap2.Sample2_1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Sample2_1</servlet-name> <url-pattern>/2_1</url-pattern> </servlet-mapping> </web-app>
マッピングの名前とサーブレットの定義の名前を"一致させる"こと。
あとは、url-patternに書いたものをちゃんとブラウザのアドレスバーに指定すること。
一回表示できるようになったら後は簡単だ。
JavaEEは厳密にフォルダー体系が決められている。だから、まずはちゃんとxmlの意味や、フォルダの位置の意味を理解する必要がある。
そうしないと、いつまでも
HTTPステータス 404 - The requested resource is not available.
なんて不愉快なエラーに悩まされ、パソコンを殴りたくなる衝動と格闘しなければならないだろう。
最低限を書いたが、プロジェクトの都合上一刻も早くちゃんと調べたい人は、以下の書籍を買うべきである。
SUN教科書 Webコンポーネントディベロッパ(SJC-WC) 試験番号:310-083
サーブレット/JSP プログラミングテクニック