介绍
本篇文章为大家展示了SpringMVC如何实现一个拦截器功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>拦截器的实现强>
1,编写拦截器类实现HandlerInterceptor接口。
2,将拦截器注册进SpringMVC框架中,
3,配置拦截器的拦截规则。
<强>其他实现方法强>
WebRequestInterceptor接口:
与上一个的区别是参数区别和prehandle的方法没有返回值。没有上一个功能全,因此常用第一个。
<强>拦截器的使用场景强>
处理所有请求共性问题:
1,乱码问题:用请求,响应参数去设置编码;
2,解决权限验证问题(是否登陆,取会话对象查看),
<强>拦截器与过滤器的区别强>
1,拦截器拦截依赖于框架容器,基于反射机制,只过滤请求;
2,过滤器过滤依赖于Servlet容器,基于回调函数,过滤范围大;
例子
进口javax.servlet.http.HttpServletRequest; 进口javax.servlet.http.HttpServletResponse; 进口org.springframework.web.servlet.HandlerInterceptor; 进口org.springframework.web.servlet.ModelAndView; 公共类TestInterceptor实现HandlerInterceptor {/* * *返回值说明是否需要将当前的请求拦截下来 *错误:请求将被终止 *:请求会被继续运行 *对象处理程序表示的是被拦截的请求的目标对象 */@Override 公共布尔preHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序) 抛出异常{ System.out.println (“TestInterceptor.preHandle ()“); 返回true; }/* * * modelAndView: *可以通过modelAndView参数改变显示的视图,或者修改发往视图的方法 */@Override 公共空白postHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序, {ModelAndView ModelAndView)抛出异常 System.out.println (“TestInterceptor.postHandle ()“); }/* * *在视图加载完毕之后调用 *常用于作于资源的销毁,流等 *类似于析构函数 */@Override 公共空间afterCompletion (HttpServletRequest请求,HttpServletResponse响应、对象处理程序异常交货) 抛出异常{ System.out.println (“TestInterceptor.afterCompletion ()“); } }
注册方式:
在springmvc的Dispatcherservlet配置文件中加入拦截器代码;
& lt; !——注册拦截器——比; & lt; mvc: interceptors> & lt; !——单个拦截器:设置具体的拦截路径——比; & lt; mvc: interceptor> & lt; mvc:=映射路径“/课程/view2/*“/比; & lt; bean类=癱om.cc.mvcdemo.interceptor.TestInterceptor"祝辞& lt;/bean> & lt;/mvc: interceptor> & lt; !——第二种方式:拦截经过当前Dispatcherservlet的所有请求——比; & lt; bean类=癱om.cc.mvcdemo.interceptor.TestInterceptorTwo"祝辞& lt;/bean> & lt;/mvc: interceptors>
上述内容就是SpringMVC如何实现一个拦截器功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。