• ベストアンサー

JSPからサーブレットを呼び出す際に404エラー

現在、tomcatでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ・ファイルの配置 basic |-input |...|-echo.jsp |-WEB-INF |...|-src |......|-input |.........|-EchoServlet.java |...|-classes |......|-input |.........|-EchoServlet.class |...|-web.xml ・echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="../servlet/input.EchoServlet"> ・web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> tomcatの/confのinvokerのコメントは外していません。 過去の質問も調べてみて、上記の記述の辺りがおかしいのではないかと 思うのですが、、お気付きの点がありましたら教えて頂けないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

<FORM ACTION="../servlet/input.EchoServlet"> ↓ <FORM ACTION="../servlet/EchoServlet"> じゃないでしょうか。クラス名ではなくURLパターンで指定する必要がありますから。

jinna1515
質問者

お礼

回答ありがとうございます。 おっしゃる通りにしたら404エラーはでなくなりました。 ですが、今度は ????? 500 ?????? /basic/servlet/EchoServlet ????? class java.io.UnsupportedEncodingException ??????? Windows-31 の様なエラーが出てしまいました。 これはwindows-31Jのエンコーディングは使えないということでしょうか?

その他の回答 (1)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

>??????? Windows-31 このエラーが本当に出ているのだとしたら、 「Windows-31J」じゃなくて「Windows-31」になっているから、エラーになっているだけではないでしょうか。 もし、「Windows31-J」でもエラーになるのなら、「MS932」にしてみるとか?

jinna1515
質問者

お礼

回答ありがとうございます。 おっしゃる通り、 EchoServlet.java内で文字コードを「Windows-31J」のところを 「Windows-31」としてしまっていたようです。 お二人のおかげで正しく動くようになりました。 ありがとうございました。