本文共 1386 字,大约阅读时间需要 4 分钟。
public class AuthorizedInterceptor implements HandlerInterceptor{ private static final String[] IGNORE_URI={"/loginForm","/login","/404.html"}; @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub //在整个请求完成后执行,主要用于清理资源 } //在Controller的方法调用之后执行 @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub } //在Controller方法调用之前执行,当返回值为false的时候整个请求就结束了 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub boolean flag=false; String servletPath=request.getServletPath(); for(String s:IGNORE_URI){ if(servletPath.contains(s)){ flag=true; break; } } if(!flag){ User user=(User)request.getSession().getAttribute(HrmConstants.USER_SESSION); if(user==null){ request.setAttribute("message","请先登录再访问网站!"); request.getRequestDispatcher(HrmConstants.LOGIN).forward(request, response); return flag; }else{ flag=true; } } return flag; } }Springmvc配置文件中配置拦截器
<mvc:interceptors>
<mvc:interceptor> <!-- 拦截所有请求 --> <mvc:mapping path="/*"/> <!-- 自定义判断用户权限的拦截类 --> <bean class="org.fkit.hrm.interceptor.AuthorizedInterceptor"/> </mvc:interceptor> </mvc:interceptors>转载地址:http://rpjqi.baihongyu.com/