サーブレットの学習をしています。
現在、動的プロジェクト「formexample」を作成し、WebContent下に「forsumple.jsp」
を配置しており、formexample/javaリソース/src/servlet(パッケージ)下に「ForSumple.java」
があります。
URLにhttp://localhost:8080/formexample/forsumple.jspを入力するとJSPファイルは呼び出されるのですが
登録ボタンを押した後、画面遷移がうまくできず、404エラーが発生します。
ご助言の程よろしくお願いいたします。
formexample/WebContent/forsumple.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset=UTF-8"> <title>ユーザー登録もどき</title> </head> <body> <form action="/formexample/ForSumple" method="Post"> 名前:<br> <input type = "text" name = "name"><br> 性別:<br> 男<input type = "radio" name="gender" value="0"> 女<input type = "radio" name = "gender" value = "1"> <input type = "submit" value = "登録"> </form> </body> </html>
formexample/javaリソース/src/servlet/ForSumple.java
package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ForSampleServlet */ @WebServlet("/FormSampleServlet") public class ForSumple extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //リクエストパラメーターを取得 request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String gender = request.getParameter("gender"); //リクエストパラメーターをチェック String errorMsg = ""; if(name == null || name.length() ==0) { errorMsg +="名前が入力されていません<br>"; } if(gender == null || gender.length() == 0) { errorMsg +="性別が選択されていません"; } else { if(gender.equals("0")) { gender = "男性"; } else if(gender.equals("1")) { gender = "女性"; } //表示するメッセージを設定 String msg = name + "さん(" + gender + ")を登録しました"; if(errorMsg.length() !=0) { msg = errorMsg; } //HTMLを出力 response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<meta charset=\"UTF-8\">"); out.println("<title>ユーザー登録結果</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>" + msg + "</p>"); out.println("</body>"); out.println("</html>"); out.println("html"); out.println(""); } doGet(request, response); } }
formexample/WebContent/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>ForSampleServlet</servlet-name> <servlet-class>servlet.ForSampleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ForSampleServlet</servlet-name> <url-pattern> /servlet/ForSampleServlet </url-pattern> </servlet-mapping> </web-app>
回答1件
あなたの回答
tips
プレビュー