Я хочу перенаправить на домашнюю страницу, если сеанс недействителен. Моя весна-servlet.xml являетсяSpring 3.0 не может перенаправить запрос от HandlerInterceptorAdapter
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="com.xxx.MyInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
Interceptor:
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if ((null == request.getSession(false))
|| (null == request.getSession(false).getAttribute(
"user"))) {
System.out.println("user logged out...");
RequestDispatcher rd = request.getRequestDispatcher("loginForm.htm");
rd.forward(request, response);
return false;
}
return super.preHandle(request, response, handler);
}
Но ее не работает ... Всякий раз, когда приложение начала, сообщение получить печататься несколько раз, и в конце концов он дает стек переполнение ..
спасибо.
thanx для ответа, но требование: i hv перехватывать каждый запрос для проверки того, является ли сеанс действительным или нет .. если нет, то перенаправление на главную страницу ... весь шаблон url заканчивается на .htm –
Вот что Я попытался объяснить, так как все ваши сопоставления запросов заканчиваются на * .htm, вы попадаете в бесконечный цикл. Должно быть какое-то исключение из этого шаблона, иначе ваша проблема будет сохраняться. :-) –
Thankx for the direction ... Решенная проблема, изменяя значение LoginForm.htm на вход в LoginForm.do и сопоставление перехватчиков с "/ **" на "/*.htm" .. –