2015-10-25 2 views
-3

Я работаю с Java-сетью (Filters), и я хочу перенаправить на другую страницу JSP, если пользователь вошел в систему с некоторыми учетными данными.Правильное использование if и else

Если я вводим учетные данные для клиента, он регистрируется в порядке, но если я хочу войти в систему как супервизор, он перенаправляет меня на несанкционированный вход в систему. Я думаю, что это для моих 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

Ваш руководитель не клиент. – BalusC

+0

yap, я могу использовать '||', но он перенаправляет супервизор или checker на Client.jsp, и мне нужно перенаправление супервизора в Supervisor.jsp – Joan

ответ

-1

Существует некоторая синтаксическая ошибка. Попробуйте написать вот так:

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

Я надеюсь, что это сработает для вас. В противном случае вы должны использовать операторы if-elseif.

+0

Это, кадры перенаправляются на несанкционированный – Joan

+0

Добавили ли вы фигурные скобки на каждое другое утверждение? –

+0

Да, я обновляю в своем вопросе – Joan

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); 
Смежные вопросы