我正在使用Java Web(过滤器),如果用户使用某些凭据登录,我想重定向到另一个JSP页面。
如果我输入客户端的凭据,则记录正常,但如果我想以主管身份登录,则会将我重定向到未经授权的登录。我认为这适用于我的if
和else
用法。
这是我的代码(做过滤器):
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
?
答案 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
语句。