I want to redirect the url after user input name and password, but there are something wrong.
some people say that add return
after forward(request,response)
, and this method doesn't work.
RequestDispatcher dispatcher; String username = request.getParameter("username"); String passwd = request.getParameter("passwd"); if(username != null && passwd != null){ try{ Database database = new Database("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/picshow","root","000000"); ResultSet rs = database.query("select * from ps_user where name=?", username); if(rs.next()){ if(rs.getString("passwd").equals(passwd)){ HttpSession session = request.getSession(); session.setAttribute("username", username); System.out.println("login successful"); dispatcher = request.getRequestDispatcher(request.getContextPath()+"/personalpage.jsp"); dispatcher.forward(request, response); return; }else { errMsg = "invalid password"; } }else { errMsg="user not exist"; } }catch(Exception e){ e.printStackTrace(); } if(errMsg != null && !errMsg.equals("")){ dispatcher = request.getRequestDispatcher(request.getContextPath()+"/login.jsp"); request.setAttribute("errMsg", errMsg); dispatcher.forward(request, response); return; } }else { dispatcher = request.getRequestDispatcher(request.getContextPath()+"/login.jsp"); dispatcher.forward(request, response); return; }
Instead create a String variable, set your destination based on your condition and finally forward it.