У меня есть проблема с моим фильтром аутентификации. Когда перенаправления фильтра к странице входа в систему, никакие изображения не отображены во входе в систему 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
Это из-за относительных путей.
логин
находится в корне контекста / views / images /
Таким образом, при пересылке изображения ищутся в / images
(потому что они относятся к текущему адресу) вместо / views / images /
Как решить эту проблему. Два варианта:
Обновление: Убедитесь, что на изображения НЕ влияет фильтр. два варианта:
request.getRequestURI ()
Может быть, ваш фильтр также применяется к запросам изображений и перенаправляет запрос на logo.png
на login.jsp
?
Если да, то вы можете настроить filter-mapping
в web.xml
.