所須要導入的包類:import org.springframework.web.servlet.HandleInterceptor;(攔截器要繼承該類)web
public class loginInterceptor implements HandleInterceptor{spring
(主要用到該方法,其餘兩個暫忽略)session
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,object arg2) throws Exception{mvc
//獲取請求的URLapp
String url = request.getRequestURL();jsp
//url:註冊 ,登陸頁面是公開的,這個demo是除了該頁面能夠公開訪問的,其餘的都進行攔截url
if(url.indexOf("login.action")>=0||url.indexOf("reg.action")>=0){spa
//login.action的.action與applicationContext.xml中的mapping path="/*.action"一致xml
return true;對象
}
//獲取seesion
HttpSession session = request.getSession();
LoginUsers user = (LoginsUsers)session.getAttribute("loginUser");
//loginUser是登陸後存到會話中的用戶對象
if(user!=null){
return true;
}
//不符合以上條件的所有跳到登陸頁面
request.getRequestDispatcher("/WEB-INFO/login.jsp").forward(request,response);
return false;
}
}
applicationContext.xml文件中配置攔截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*.action" />
<bean id="LoginInterceptor" class="util.LoginInterceptor" /> //util.LoginInterceptor攔截器的包的位置 LoginInterceptor攔截器的類名
</mvc:interceptor>
</mvc:interceptors>