我想在用户输入名称和密码后重定向url,但是有些错误。
有人说在return
之后添加forward(request,response)
,这种方法不起作用。
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; }
答案 0 :(得分:0)
而是创建一个String变量,根据您的条件设置您的目的地,最后转发它。
RequestDispatcher dispatcher;
String username = request.getParameter("username");
String passwd = request.getParameter("passwd");
String destination = "";//new targe variable
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");
destination=request.getContextPath()+"/personalpage.jsp";//set your target
}else {
errMsg = "invalid password";
}
}else {
errMsg="user not exist";
}
}catch(Exception e){
e.printStackTrace();
}
if(errMsg != null && !errMsg.equals("")){
destination=request.getContextPath()+"/login.jsp";//set your target
request.setAttribute("errMsg", errMsg);
}
}else {
destination=request.getRequestDispatcher(request.getContextPath()+"/login.jsp");//set
}
dispatcher = request.getRequestDispatcher(destination);
dispatcher.forward(request, response);