質問: ``` //index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here Send ``` ``` //SampleServlet.java package javaweb; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/SampleServlet") public class SampleServlet extends HttpServlet { //HttpServletクラスのdoPostメソッドをオーバーライドしている public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException { System.out.println(req.getParameter("message")); } } ``` eclipseの内部ブラウザからhttp://localhost:8080/javaweb/index.jspへリクエストをして,ブラウザへレスポンスされたwebページのformから入力された内容をサーブレット側で受け取りたいのですが、 HTTPステータス 404 エラーがでてしまいます。 @WebServlet("/SampleServlet") などの指定が間違っているのでしょうか? Apache Tomcat のバージョンは 9.0.20です。 tomcat 7 以降だと @WebServlet の指定が可能みたいなのですが アドバイス頂けると助かります。 --------------質問の追記----------------------- eclipseの内部ブラウザからhttp://localhost:8080/javaweb/index.jspにリクエスト何度かしたところ、何回目かに突然404エラーが出てしまいました。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/82328d22c5181e90707f1d7abf0fbaa2.jpeg) ※上記はkoko.htmlにリクエストをしております。(index.jspファイルに間違えがないか) 一番上のjavawebフォルダのところに黄色いビックリマークがあるのでしょうが、これが原因なのでしょうか?(調べたらビルドパスがなんたらでてきました。。) 原因が分からなたたのでアドバイス頂けると助かります。 ---変更点・質問の追記・解決点--- ---解決点--- eclipseの内部ブラウザからhttp://localhost:8080/javaweb/index.jspにリクエスト何度かしたところ、何回目かに突然404エラーが出てしまいました。 上記の部分は、tomcatプロジェクト(javaweb) のjavaのビルド・パスのライブラリの欠落しているものを削除。 コンパイラーの準拠レベルの設定の変更。 上記変更をしたところ、javawebフォルダのところに黄色いビックリマークがなくなり、http://localhost:8080/javaweb/index.jspへのリクエストが問題なくできるようになりました。 ---変更点--- index.jspファイルの 上記を に変更 しかし、form タグの内容をサーブレット側へ受け渡せませんでした。。
回答: この場合はサーブレット側のURI(@WebServlet)の設定ではなく、actionに指定するURIの設定の方だと思います。 下記の質問がほぼそのまま該当しそうです。 * teratail:submitボタン押下後の404エラーの原因を知りたいです