springmvc.xml
<!--攔截請求 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 要攔截的請求類型 /** 所以請求 -->
<mvc:mapping path="/**"/>
<!-- 不攔截的請求 -->
<mvc:exclude-mapping path="/login.form"/>
<mvc:exclude-mapping path="/register.form"/>
<!-- 攔截的請求的執行的方法類 -->
<bean class="cn.books.interceptor.TestInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
TestInterceptor
首先繼承HandlerInterceptor
public class TestInterceptor implements HandlerInterceptor{
/*第三次執行的方法*/
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
/*可以通過ModelAndView跳轉視圖頁面
* 第二個執行的方法*/
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
/*返回值:表示我們是否需要將當前的請求攔截下來
true表示請求繼續運行
false請求將被終止
Objest表示的是被攔截的請求的目標對象
最開始執行的方法
*/
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
// TODO Auto-generated method stub
HttpSession session=arg0.getSession();
String sa=(String) session.getAttribute("usersession");
if(sa!=null) {
return true;
}else {
return false;
/*arg3.setViewName("main.jsp");*/
}
我這兒是在第一個的時候如果沒登錄就直接false也可以第二個是跳轉視圖