Web系统Login拦截器

时间:2024-07-25 11:37:14

所需要导入的包类: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>