2

我想在用户输入名称和密码后重定向 url,但是有问题。有人说add returnafter 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;
    }
4

1 回答 1

0

而是创建一个字符串变量,根据您的条件设置您的目的地,最后转发它。

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);
于 2014-11-29T16:28:12.593 回答