Фильтр Сервлета Java перенаправляет проблему

У меня есть проблема с моим фильтром аутентификации. Когда перенаправления фильтра к странице входа в систему, никакие изображения не отображены во входе в систему JSP. Однако, если я перехожу к странице входа в систему вручную после того, как я зарегистрирован, изображения отображены.

Я не понимаю, почему это происходит! Я ценю любую справку.:-)

AuthFilter:

if (authorized == null && path.indexOf("Auth") == -1 && path.indexOf("Login") == -1 ) {
        httpResponse.sendRedirect("Login");  
        return;  
} else {  
        chain.doFilter(request, response);  
}

Сервлет входа в систему:

// Just using a servlet in case I want more data sent to the jsp
Dispatcher.dispatch("views/login.jsp", request, response);

login.jsp:

<img src="images/logo.png" />

jsp в других отношениях "нормален", все необходимые HTML-тэги присутствуют. Папка "изображений" находится в "веб-" папке по умолчанию проекта, вместе со всеми другими jsp's и javascripts.

Заранее спасибо за любую справку.:)
- Stian

5
задан BalusC 27 April 2010 в 21:36
поделиться

2 ответа

Это из-за относительных путей.

  • ваш логин находится в корне контекста
  • ваши изображения, вероятно, / views / images /
  • при пересылке, браузер знает только запрошенный URL.

Таким образом, при пересылке изображения ищутся в / images (потому что они относятся к текущему адресу) вместо / views / images /

Как решить эту проблему. Два варианта:

  • не пересылать из сервлета; вместо этого перенаправить
  • не перенаправлять на сервлет из фильтра; перенаправление на страницу входа напрямую

Обновление: Убедитесь, что на изображения НЕ влияет фильтр. два варианта:

  • они не должны совпадать с шаблоном фильтра.
  • перенаправление не должно происходить для .png, .jpeg, .css и т. д. в фильтре. проверьте это с помощью request.getRequestURI ()
7
ответ дан 14 December 2019 в 01:07
поделиться

Может быть, ваш фильтр также применяется к запросам изображений и перенаправляет запрос на logo.png на login.jsp?

Если да, то вы можете настроить filter-mapping в web.xml.

2
ответ дан 14 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: