spring mvc中配置拦截器
ApplicationContext-mvc.xml中
<!-- 访问拦截 --> <!-- /**/**代表拦截所有,LoginHandlerInterceptor定义拦截到的页面 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**/**"/> <bean class="com.ecai.interceptor.LoginHandlerInterceptor"/> </mvc:interceptor> </mvc:interceptors>
LoginHandlerInterceptor.java中
package com.ecai.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.ecai.entity.system.User; import com.ecai.util.Const; import com.ecai.util.Jurisdiction; /** * * 类名称:登录过滤,权限验证 * 类描述: * 作者单位: * 联系方式: * 创建时间:2015年11月2日 * @version 1.6 */ public class LoginHandlerInterceptor extends HandlerInterceptorAdapter{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub String path = request.getServletPath(); if(path.matches(Const.NO_INTERCEPTOR_PATH)){ return true; }else{ User user = (User)Jurisdiction.getSession().getAttribute(Const.SESSION_USER); if(user!=null){ path = path.substring(1, path.length()); boolean b = Jurisdiction.hasJurisdiction(path); //访问权限校验 if(!b){ response.sendRedirect(request.getContextPath() + Const.LOGIN); } return b; }else{ //登陆过滤 response.sendRedirect(request.getContextPath() + Const.LOGIN); return false; } } } }