0

サーブレットを作ろうとしています。

管理者の例とドキュメントを使用して、ubuntuにtomcat6をインストールしました。提供された例を実行できます。しかし、独自のサーブレットを作成しようとすると、うまくいきません。

次の手順を実行しました

ROOTの下に、フォルダーを作成します

-ROOT
----myapp
------WEB-INF
---------classes

2 つのファイルを作成しました。1 つは index.html で、フォーム上でサーブレットを呼び出すためのボタンとアクションがあります。2 番目は .java ファイルです。.java ファイルをコンパイルし、.class が完了しました。だから今、木は次のように見えます

-ROOT
----myapp
------index.html
------WEB-INF
---------classes
-----------TestServ.java
-----------TestServ.class

今、私はhttp://localhost:8080/myappを使用してブラウザでこれを開きます

ボタン付きのindex.htmlページで表示されます。しかし、ボタンをクリックすると、

エラー 404: http://localhost:8080/myapp/TestServが見つかりません!!

どこが間違っているのかわかりません。CATALINA_HOME も設定しました。しかし、まだこの問題は続きます。

4

2 に答える 2

6

WEB-INF ディレクトリに web.xml を作成し、web.xml でサーブレット マッピングを定義して、myapp/TestServ URL が TestServ サーブレット クラスに転送されるようにする必要があります。

これは web.xml を説明するページで、設定に必要な例と要素があります。クラスの場合、これらの要素はおそらく次のようになります。

<servlet>
    <servlet-name>testServ</servlet-name>
    <servlet-class>TestServ</servlet-class>
</servlet>

<servlet-mapping>
     <!-- For any URL starting with /content/, the rewriter servlet will be called -->
     <servlet-name>testServ</servlet-name>
     <url-pattern>/TestServ</url-pattern>
</servlet-mapping> 
于 2009-11-18T01:10:20.367 に答える
1

ROOT の下にコードを展開するべきではありません。

デフォルト パッケージに Java クラスを含めないでください。TestServ.java をパッケージに入れてみてください。

デプロイメントには .java ファイルを含めないでください。

サーブレットを web.xml に正しく登録する必要があります。特定の URL へのマッピングを含めます。

最良の方法は、myapp.war という名前の WAR ファイルを作成することです。このファイルには、WEB-INF/classes と WEB-INF/lib が含まれ、状況に応じて web.xml が含まれます。それを Tomcat /webapps に入れて、コンテナを起動します。サーブレットを適切に登録していれば、 http://localhost:8080/myapp/TestServ経由でアクセスできるはずです。

展開ドキュメントを注意深く読みます。

于 2009-11-18T01:23:25.430 に答える