とまどってしまった(^^;)
4.0と6.0の違いで、戸惑ったのは、こんなかんじ
・confのserver.xmlは修正しなくてよい。
・リンクするのはservlet-api.jar
・web.xmlはちゃんと書かないと動かない
で、これについて説明する前に、まず、Tomcat6.0を入れる話。
■Tomcat6.0を入れる
Tomcat6.0のありかは、
ここ http://tomcat.apache.org/download-60.cgi
Windowsパソコンに入れたので、6.0.2-betaのBinary DistributionsのCoreの
Windows Service Installer をクリックして、すぐに実行して入れました。
途中、入れるのを聞いてくるところでnormal,custom,fullと選択できるんですけど、
fullにしてインストールしました。
なんか、途中で、いろいろセキュリティのワーニングが出ましたが、許可許可!!
ってして、入れました(^^)
■(変更点1)confのserver.xmlは修正しなくてよい
いままで、confのserver.xmlを修正していたのですが、これ、入らなくなったみたいです。
つまり、JSPなら、フォルダ作って置いて、そこのURLを指定すると、すぐに見えます。
■(変更点2)リンクするのはservlet-api.jar
いままでは、server.jarだったと思うんですけど、
6.0では、コンパイルしてクラスを作るとき、
Tomcatのフォルダの、libのservlet-api.jarを
かわりにクラスパスに通します。
■(変更点3)web.xmlはちゃんと書かないと動かない
4.0のときは、web.xmlは、web-appだけ書けば、たとえば、
フォルダtest/WEB-INF/classes/shori.class
のサーブレットにアクセスするには
http://127.0.0.1:8080/test/servlet/shori
でアクセスできましたが、6.0ではできません。
servletタグとservlet-mappingタグを指定しないといけないみたいです
(servlet-mappingでURLを指定します)
上記のように、
Tomcatのフォルダ/webapps/test/WEB-INF/classes/shori.class
に、クラスファイルがあって、
http://127.0.0.1:8080/test/servlet/shori
で、アクセスするためには、Tomcatのフォルダ/webapps/test/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>shori</servlet-name> <servlet-class>shori</servlet-class> </servlet> <servlet-mapping> <servlet-name>shori</servlet-name> <url-pattern>/servlet/shori</url-pattern> </servlet-mapping> </web-app> |
(上記 < > ¥ は、本当は半角です)
これで、アクセスできました。
■おまけ:examplesのURLのみかた
変更点3に書いてあるように、webappsの下にあるexamplesのURLを知るには、
Tomcatのフォルダ/webapps/examples/web.xmlを開いて、servlet-mappingを
見ることになります。
ちなみにHello Worldの例は
http://127.0.0.1:8080/examples/servlets/servlet/HelloWorldExample
です。