Аттрибут из сервлета в JSP

308
08 сентября 2017, 20:53

Здравствуйте! Столкнулся с такой проблемой: Мне необходимо создать страницу авторизации. При аутентификации введенный логин сравнивается с логином из базы и если все ок, редиректит на страничку с приветствием. Иначе он должен выводить ошибку на странице. Ошибку я пытаюсь вывести с помощью тега if на jsp страничке, проверяющим аттрибут error, который я передаю из сервлета. Редирект происходит, но ошибка не выводится. Servlet

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/login")
public class LoginServlet extends HttpServlet {
    @Autowired
    UserBusiness service;
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = (String) req.getParameter("login");
        String password = (String) req.getParameter("pd");
        if(service.authentication(username, password)) {
            req.getRequestDispatcher("welcome.jsp").forward(req, resp);
        }
        else {
            req.getSession().setAttribute("error", true);
            resp.sendRedirect("login");
        }
    }
}

JSP страничка

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.sun.org.apache.xpath.internal.operations.Bool" %>
</head>
<body>
<form action="login" method="POST">
    Login: <br />
    <input name="login" type="text" size="25" maxlength="30" value="" /> <br />
    Password: <br/>
    <input name="pd" type="password" size="25" maxlength="30" value="" /> <br />
    <input name="remember" type="checkbox" value="yes" /> Remember <br />
    <input type="submit" name="enter" value="Enter" />
    <c:if test="${error}">
        ERROR
    </c:if>
</form>
<form action="registration.jsp" method="POST">
    <input type="submit" name="registration" value="Registration" />
</form>
</body>
</html>
Answer 1

Нужно было использовать <%@ page isELIgnored="false" %>

READ ALSO
Запуск и остановка java файлов через task scheduler

Запуск и остановка java файлов через task scheduler

Подскажите как правильно запустить java файлы на удаленном компе через task shedulerПробовала сделать двумя способами:

276
В чем отличие двух книг по Java? [требует правки]

В чем отличие двух книг по Java? [требует правки]

Здравствуйте! Решил начать изучать JavaМой выбор пал на книгу: Java

299
Вставка рекламы admob в приложение с Youtube API?

Вставка рекламы admob в приложение с Youtube API?

Добрый день, в том году запретили использовать youtube API в приложениях вместе с монетизацией, не пропускают такие приложения на google playМожет...

330