1
如果會話無效,我想重定向到主頁。 我爲spring-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>
攔截:
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的回覆,但要求是,我hv攔截每個請求以檢查會話是否有效。如果沒有,則重定向到主頁面...所有url模式以.htm結尾 –
這就是我試圖解釋,因爲所有的請求映射都以* .htm結尾,所以你正在陷入無限循環。從這種模式必須有一些exlusion其他明智的問題將繼續存在。 :-) –
Thankx爲方向...通過將LoginForm.htm更改爲LoginForm.do並將攔截器映射從「/ **」更改爲「/*.htm」來解決問題。 –