所需要导入的包类:import org.springframework.web.servlet.HandleInterceptor;(拦截器要继承该类)
public class loginInterceptor implements HandleInterceptor{
(主要用到该方法,其他两个暂忽略)
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,object arg2) throws Exception{
//获取请求的URL
String url = request.getRequestURL();
//url:注册 ,登录页面是公开的,这个demo是除了该页面可以公开访问的,其他的都进行拦截
if(url.indexOf("login.action")>=0||url.indexOf("reg.action")>=0){
//login.action的.action与applicationContext.xml中的mapping path="/*.action"一致
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>