正确使用if和else

时间:2015-10-25 18:58:54

标签: java loops if-statement

我正在使用Java Web(过滤器),如果用户使用某些凭据登录,我想重定向到另一个JSP页面。

如果我输入客户端的凭据,则记录正常,但如果我想以主管身份登录,则会将我重定向到未经授权的登录。我认为这适用于我的ifelse用法。

这是我的代码(做过滤器):

try {
    String usr = request.getParameter("usr");
    String pswd = request.getParameter("password");

    if (usr == null && pswd == null) {
        request.getRequestDispatcher("index.html").forward(request, response);
    }

    if(usr.equals("Client") && pswd.equals("123") ) {
         request.getRequestDispatcher("/Client.jsp").forward(request, response);

    }
    else {
        request.getRequestDispatcher("/unautorized.jsp").forward(request, response);
    }

    if (usr.equals("Supervisor") && pswd.equals("123")) {
        request.getRequestDispatcher("/Supervisor.jsp").forward(request, response);
    }
    else {
        request.getRequestDispatcher("/unautorized.jsp").forward(request, response);
    }

    if (usr.equals("Checker") && pswd.equals("123")) {
        request.getRequestDispatcher("/Checker.jsp").forward(request, response);
    }
    else {
        request.getRequestDispatcher("/unautorized.jsp").forward(request, response);
    }
    chain.doFilter(request, response);

为什么它会保留在第一个else

2 个答案:

答案 0 :(得分:0)

我解决了。它应该是:

if (usr.equals("Client") && pswd.equals("123") ) {
    request.getRequestDispatcher("/Client.jsp").forward(request, response);
}
else
    if (usr.equals("Supervisor") && pswd.equals("123")) {
        request.getRequestDispatcher("/Supervisor.jsp").forward(request, response);
    }
    else
        if (usr.equals("Cashier") && pswd.equals("123")) {
            request.getRequestDispatcher("/Cashier.jsp").forward(request, response);
        }
        else
            request.getRequestDispatcher("/unautorized.jsp").forward(request, response);

答案 1 :(得分:-1)

存在某种语法错误。试着这样写:

if (usr.equals("Client") & pswd.equals("123")) {
    request.getRequestDispatcher("/Client.jsp").forward(request, response);
}
else {
    request.getRequestDispatcher("/unautorized.jsp").forward(request, response);
}

我希望它对你有用。否则,您应该使用if-else if语句。