RegisterUser.javaからエクリプスを起動すると
「The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.」
エラーが発生しています。サーブレットの教材のソースをそのまま貼り付けているので、パスの間違いはないと思っています。
正しく動かす(最初はregisterForm.jspに行く)にはどうすればいいのでしょうか?ご教授のほどお願いします。
ディレクトリ
JAVAEE画面
User.java
package model; import java.io.Serializable; public class User implements Serializable { private String id; private String name; private String pass; public User() { } public User(String id, String name, String pass) { this.id = id; this.name = name; this.pass = pass; } public String getId() { return id; } public String getPass() { return pass; } public String getName() { return name; } }
RegisterUserLogic.java
package model; public class RegisterUserLogic { public boolean execute(User user) { // 登録処理(サンプルでは登録処理を行わない) return true; } }
RegisterUser.java
package servlet; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import model.RegisterUserLogic; import model.User; @WebServlet("/RegisterUser") public class RegisterUser extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // フォワード先 String forwardPath = null; // サーブレットクラスの動作を決定する「action」の値を // リクエストパラメータから取得 String action = request.getParameter("action"); // 「登録の開始」をリクエストされたときの処理 if (action == null) { // フォワード先を設定 forwardPath = "/WEB-INF/jsp/registerForm.jsp"; } // 登録確認画面から「登録実行」をリクエストされたときの処理 else if (action.equals("done")) { // セッションスコープに保存された登録ユーザ HttpSession session = request.getSession(); User registerUser = (User) session.getAttribute("registerUser"); // 登録処理の呼び出し RegisterUserLogic logic = new RegisterUserLogic(); logic.execute(registerUser); // 不要となったセッションスコープ内のインスタンスを削除 session.removeAttribute("registerUser"); // 登録後のフォワード先を設定 forwardPath = "/WEB-INF/jsp/registerDone.jsp"; } // 設定されたフォワード先にフォワード RequestDispatcher dispatcher = request.getRequestDispatcher(forwardPath); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // リクエストパラメータの取得 request.setCharacterEncoding("UTF-8"); String id = request.getParameter("id"); String name = request.getParameter("name"); String pass = request.getParameter("pass"); // 登録するユーザーの情報を設定 User registerUser = new User(id, name, pass); // セッションスコープに登録ユーザーを保存 HttpSession session = request.getSession(); session.setAttribute("registerUser", registerUser); // フォワード RequestDispatcher dispatcher = request.getRequestDispatcher ("/WEB-INF/jsp/registerConfirm.jsp"); dispatcher.forward(request, response); } }
registerForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <form action="/example/RegisterUser" method="post"> ログインID:<input type="text" name="id"><br> パスワード:<input type="password" name="pass"><br> 名前:<input type="text" name="name"><br> <input type="submit" value="確認"> </form> </body> </html>
registerDone.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <p>登録完了しました</p> <a href="/example/RegisterUser">戻る</a></body> </html>
registerConfirm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="model.User" %> <% User registerUser = (User) session.getAttribute("registerUser"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー登録</title> </head> <body> <p>下記のユーザーを登録します</p> <p> ログインID:<%= registerUser.getId() %><br> 名前:<%= registerUser.getName() %><br> </p> <a href="/example/RegisterUser">戻る</a> <a href="/example/RegisterUser?action=done">登録</a> </body> </html>
回答1件
あなたの回答
tips
プレビュー