【java】spring拦截器的实现

来源:互联网 发布:手机快速充电软件 编辑:程序博客网 时间:2024/06/05 16:07

【前言】

        在项目中负责高校云平台的后台部分,增删改查不能让没登录的人随便弄。所以加了个拦截器,加的方式可能有点low,保存一下,做个纪念。

【正文】

        拦截器类:

** * Created by 宋荣凯 on 2017/8/16. *///拦截器类用于拦截未登陆用户的除登陆和注册的其他请求public class AuthorizationInceptor implements HandlerInterceptor{    private static final String[] IGNORE_URI ={"/login"};    @Override    public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception exception)throws Exception    {        System.out.println("123");    }    @Override    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mv)throws Exception    {        System.out.println("456");    }    @Override    public  boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler)throws Exception    {        boolean flag=false;        String servletPath=request.getServletPath();        for (String s:IGNORE_URI)        {            if (servletPath.contains(s))            {                flag=true;                break;            }        }        if (!flag)        {            String user=(String) request.getSession().getAttribute("userId");            if (user==null)            {                request.setAttribute("message","请先登录再访问网站");                request.getRequestDispatcher("/user/login").forward(request,response);            }else            {                flag=true;            }        }        return flag;    }}

在spring-mvc 配置文件中添加:
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/**/*"/><mvc:exclude-mapping path="/**/fonts/*"/><mvc:exclude-mapping path="/**/*.css"/><mvc:exclude-mapping path="/**/*.js"/><mvc:exclude-mapping path="/**/*.png"/>    <mvc:exclude-mapping path="/**/*.gif"/><mvc:exclude-mapping path="/**/*.jpg"/><mvc:exclude-mapping path="/**/*.jpeg"/><mvc:exclude-mapping path="/**/registuser"/><bean class="com.dmsdbj.itoo.itooCloud.controller.AuthorizationInceptor" /></mvc:interceptor></mvc:interceptors>
如此就完成了拦截了

【总结】

          非常简单实用的技术,而且这种拦截,执行的思想在编程中屡见不鲜。