サーブレットでgetServletContext().getRequestDispathcher(URI).forward(request,response)したら、
指定したURlのサーブレットのdoPost(request,response)が呼び出されてしまいます。
java
1package servlet; 2 3import java.io.IOException; 4import javax.servlet.ServletException; 5import javax.servlet.annotation.WebServlet; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9import javax.servlet.http.HttpSession; 10 11import bean.LoginBean; 12 13/** 14 * Servlet implementation class Login 15 */ 16@WebServlet("/login") 17public class Login extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 /** 21 * @see HttpServlet#HttpServlet() 22 */ 23 public Login() { 24 super(); 25 // TODO Auto-generated constructor stub 26 } 27 28 /** 29 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 30 */ 31 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 // TODO Auto-generated method stub 33 LoginBean lb = new LoginBean(); 34 request.setAttribute("lb", lb); 35 request.getRequestDispatcher("/login.jsp").forward(request, response); 36 } 37 38 /** 39 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 40 */ 41 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 42 LoginBean lb = new LoginBean(); 43 //String job=request.getParameter("job"); 44 lb.setPass(request.getParameter("pass")); 45 lb.setEmail(request.getParameter("email")); 46 if(lb.login()) { 47 HttpSession session = request.getSession(); 48 session.setAttribute("login_userID", lb.getUserId()); 49 session.setAttribute("login_userName", lb.getUserName()); 50 session.setAttribute("login_email", lb.getEmail()); 51 session.setAttribute("login_zip_code", lb.getZip_code()); 52 session.setAttribute("login_adress", lb.getAdress()); 53 session.setAttribute("login_tel", lb.getTel()); 54 System.out.println(lb.getUserName()); 55 if(lb.getUserName().equals("root")) { 56 System.out.println("staff logged in"); 57 getServletContext().getRequestDispatcher("/staffLogin").forward(request, response); 58 }else { 59 getServletContext().getRequestDispatcher("/home").forward(request, response); 60 } 61 }else{ 62 request.setAttribute("lb",lb); 63 getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 64 } 65 66 } 67 68}
java
1package servlet; 2 3import java.io.IOException; 4import javax.servlet.ServletException; 5import javax.servlet.annotation.WebServlet; 6import javax.servlet.http.HttpServlet; 7import javax.servlet.http.HttpServletRequest; 8import javax.servlet.http.HttpServletResponse; 9import javax.servlet.http.HttpSession; 10 11import bean.LoginBean; 12 13/** 14 * Servlet implementation class StaffPage 15 */ 16@WebServlet("/staffLogin") 17public class StaffLogin extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 /** 21 * @see HttpServlet#HttpServlet() 22 */ 23 public StaffLogin() { 24 super(); 25 // TODO Auto-generated constructor stub 26 } 27 28 /** 29 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 30 */ 31 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 // TODO Auto-generated method stub 33 System.out.println("stafflogin:doGet"); 34 LoginBean lb = new LoginBean(); 35 request.setAttribute("message", ""); 36 request.setAttribute("lb", lb); 37 LoginBean att = (LoginBean)(request.getAttribute("lb")); 38 System.out.println(att.getPass()); 39 request.getRequestDispatcher("/stafflogin.jsp").forward(request, response); 40 } 41 42 /** 43 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 44 */ 45 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 46 // TODO Auto-generated method stub 47 LoginBean lb = new LoginBean(); 48 lb.setPass(request.getParameter("pass")); 49 lb.setStaffId(request.getParameter("staffId")); 50 if(lb.staffLogin()) { 51 HttpSession session = request.getSession(); 52 session.setAttribute("login_staffId", lb.getStaffId()); 53 session.setAttribute("login_staffName", lb.getStaffName()); 54 session.setAttribute("login_authorityId", lb.getAuthorityId()); 55 request.getRequestDispatcher("/staffpage_main.jsp").forward(request, response); 56 }else { 57 System.out.println("staff login failed"); 58 request.setAttribute("lb", lb); 59 request.setAttribute("message", "ログインできませんでした。入力情報を確かめてください。"); 60 request.getRequestDispatcher("/stafflogin.jsp").forward(request, response); 61 } 62 } 63 64} 65
コンソールに表示されたのは
root
staff logged in
(SQLSyntaxErrorException)
staff login failed
で遷移先のdoGet()が呼び出されていません。

回答1件
あなたの回答
tips
プレビュー