前提・実現したいこと
javaのサーバサイドのスクリプトの勉強をしておりますが
HTMLファイルからPOSTでサーブレットを呼び出す処理で404が返却され苦慮しております。
3日ほど各サイトや古い書籍を調査しましたが解決しなかった為にこちらに質問を記載させていただきました。
お手数ですが何かアドバイスを頂けますと助かります。
###エラーメッセージ
HTTPステータス 404 - Not Found
Type ステータスレポート
メッセージ /SampleServlet/HelloWorld
説明 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
該当のソースコード
■■■HelloWorld.java■■■
package sampleServletProj; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { public HelloWorld() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=iso-2022-jp"); request.setCharacterEncoding("iso-2022-jp"); PrintWriter out = response.getWriter(); String name = request.getParameter("NAME"); String id = request.getParameter("ID"); String belongs = request.getParameter("BELONGS"); out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); out.println("<html>"); out.println("<head>"); out.println("<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>"); out.println("<title>入力結果の確認</title>"); out.println("</head>"); out.println("<body>"); out.println("<P>"); out.println("以下の情報を受け取りました。"); out.println("</P>"); out.println("<TABLE border=\"1\">"); out.println("<TR>"); out.println("<TD>名前</TD>"); out.println("<TD><FONT color=red>" + name + "</FONT></TD>"); out.println("</TR>"); out.println("<TR>"); out.println("<TD>学籍番号</TD>"); out.println("<TD><FONT color=red>" + id + "</FONT></TD>"); out.println("</TR>"); out.println("<TR>"); out.println("<TD>所属</TD>"); out.println("<TD><FONT color=red>" + belongs + "</FONT></TD>"); out.println("</TR>"); out.println("</TABLE>"); out.println("<P>"); out.println("情報を修正する場合は以下の戻るボタンを押してください。"); out.println("<FORM method=\"GET\" action=\"./index.html\">"); out.println("<INPUT type=\"submit\" value=\"戻る\">"); out.println("</FORM>"); out.println("</P>"); out.println("</body>"); out.println("</html>"); out.close(); } }
■■■index.htnl■■■
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>フォーム入力</title> </head> <body> <P> 以下のフォームに情報を記載してください。 </P> <FORM method="POST" action="/SampleServlet/HelloWorld"> <TABLE summary="form of NAME, ID and BELONGS"> <TR> <TD>名前</TD> <TD><div> : <input type="text" name="NAME"></div></TD> </TR> <TR> <TD>学籍番号</TD> <TD><div> : <input type="text" name="ID"></div></TD> </TR> <TR> <TD>所属</TD> <TD><div> : <input type="text" name="BELONGS"></div></TD> </TR> </TABLE> <INPUT type="submit" value="送信"> <INPUT type="reset" value="取消"> </FORM> </body> </html>
■■■web.xml■■■
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" 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"> <display-name></display-name> <servlet> <description></description> <display-name></display-name> <servlet-name>HelloWorld</servlet-name> <servlet-class>sampleServletProj.HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/SampleServlet</url-pattern> </servlet-mapping> </web-app>
試したこと
・スクリプトの保存及びPC、Tomcat再起動は行っています。
・Tomcat再インストール ※xamppを使用している為に念の為に再インストールしています
・うまく動作しなかった為にプロジェクトそものの完全削除→再作成をしております
・別の動的プロジェクトを作成、WebContent内でのhtmlファイル→JSPファイルの動作は正常でした
・web.xmlの関連サイトを閲覧し、URLのパスマッピングの仕組みなど調査して
「servlet-name」「servlet-class」など調査しながら色々試して見ましたがうまくいきませんでした。
補足情報
Windows 10
Eclipse 4.13
Tomcat 7
※Eclipse実行時はxamppのTomcatは停止させております
回答1件
あなたの回答
tips
プレビュー