Когда я делаю фильтр для всех страниц jsp, браузер переходит в бесконечный цикл, , но когда я делаю фильтр только для одной страницы, он работает правильно!Бесконечный цикл при использовании фильтра для файлов jsp
Вот метод doFilter, если кто-то найти PLX ошибки скажите ...
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (debug) log("AuthenticationFilter:doFilter()");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpServletResponse httpres = (HttpServletResponse) response;
HttpServletRequest httpreq = (HttpServletRequest) request;
if (httpreq.getRequestURI().indexOf("login.jsp") == -1 || httpreq.getRequestURI().indexOf("LoginServlet") == -1) {
// if(!httpreq.getRequestURL().equals("/OSQS/Login.jsp")){
HttpSession session = httpreq.getSession();
String logged = (String) session.getAttribute("login");
if (logged == null) {
httpres.sendRedirect("login.jsp");
return;
}
}
chain.doFilter(request, response);
}
thanx это браузер работы не заходил в петлю infinte и отображал страницу входа в систему, но когда я меняю URL-адрес на private/secure.jsp, он переходит в цикл infinte :(и не перенаправлялся на страницу входа !! ? – palAlaa
Возможно, у вас все еще есть страница входа в защищенную папку? Вы изменили 'sendRedirect (« login.jsp »)' на 'sendRedirect ("/login.jsp ")'? – BalusC
проблема, которую я обнаружил, заключается в том, что пользователь получает сеанс даже если он не вошел в систему? Я не знаю, почему, так как я получаю HTTP-запрос формы сеанса в сервлете после того, как я уверяю вас в подключении db, а затем сделайте session.setAttribute («Вход», «ОК») и что что я проверяю фильтр, здесь: String logged = (String) session.getAttribute («login»); , но я потрясен, пользователь получил атрибут сеанса login = ok, но он не заходил в систему !!!!!!!! !!!!!!!!!!!!! – palAlaa