- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WTP,JSP,Servlet)
WTPを使った開発においてJSP画面からServletが呼び出せない問題
このQ&Aのポイント
- WTPを使用して開発している中で、JSP画面からServletを呼び出す際に問題が発生しています。HTTPステータス404エラーが表示され、正常にServletが呼び出されません。
- 問題の原因として、JSP画面のformタグ内のaction属性が誤って指定されている可能性が考えられます。正しいパスを指定することで問題が解決する可能性があります。
- また、Servletの他のJSPファイルに対しては正常に動作することから、問題はJSP画面からのServlet呼び出しに関連していると考えられます。情報が不足している場合は、追加情報を提供していただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#94983
回答No.2
サーブレットを作成した際、web.xmlにサーブレットが自動登録される。その値がどうなっているか確認してみる。web.xmlには<servlet-mapping>というタグがあって、そこに<url-pattern>というのがある。これが、公開されるURIになる。これの値をactionに指定すればいい。 ちなみに、クラスファイルの配置場所は気にしなくていい。WTPはビルドされた生成物の配置場所が特殊で、一般的なサーブレットの作法とは異なっている。だから、これは逆に下手に触らないほうがいい。
その他の回答 (1)
- aoi2008
- ベストアンサー率42% (6/14)
回答No.1
こんにちは コンパイルしたクラスファイルを置く場所がおかしいのと、 web.xmlにServletを登録してないんじゃないでしょうか?
質問者
お礼
ご回答ありがとうございます。 コンパイルしたクラスの置き場所は特に変えたわけでもなく、WTPそのままの設定なので問題ないかと思っています。 web.xmlを見てみます!
お礼
ご回答ありがとうございます。 なるほど。クラスファイルの配置場所を気にしなくていいのはこのweb.xmlにマッピングされているからなのですね。 url-patternを見てみると、「/Servlet」と書かれていました。 どうやらパッケージが書かれていないのが原因かと。パッケージなしのクラスを作成してみると、動いたっぽいのでそれでやってみようかと思います。 ちなみにActionにはurl-patternに書かれている「/Servlet」ではなく「Servlet」と書いたら動いたっぽいです。