文档章节

SpringMVC拦截器

梦魂清风
 梦魂清风
发布于 2017/07/24 23:49
字数 418
阅读 21
收藏 1

HandleInterceptor的三个方法
preHandler
    返回值:是否需要将当前请求拦截下来
    false:请求将被终止
    true:请求会被继续运行
    参数:HttpServletRequest, HttpServletResponse, Object
    Object:被拦截的请求目标对象
postHandler
    参数:HttpServletRequest, HttpServletResponse, Object, ModelAndView
    ModelAndView:改变显示的视图(setViewName)或者修改发往视图的方法
    (具体可以参考HandleInterceptor接口的源码)
afterCompletion
    作用:做资源的销毁,如关闭IO流

Spring MVC拦截器的配置
    • 创建拦截器并实现HandleInterceptor接口
    • 将Spring MVC配置文件中以bean的形式注册拦截器
    可以将bean配置在interceptors标签中,这时默认拦截所有路径
    可以在interceptors的子标签interceptor中配置bean,同时指定拦截规则mapping-path
    示例
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="拦截路径(可使用正则表达式)">
            <bean class="拦截器类的全限定名(包名+类名)">
        </mvc:interceptor>
    </mvc:interceptors>
拦截器和过滤器
    ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
    ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
    ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
    ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
    ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
    ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑

© 著作权归作者所有

共有 人打赏支持
梦魂清风
粉丝 1
博文 58
码字总数 36423
作品 0
长沙
程序员

暂无文章

Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
8分钟前
0
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术 将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
10分钟前
1
0
谷歌浏览器插件入门示例

实现:任何网址实现图片下载和获取当前域名的cookies的json字符串。 图片下载是给小白用的,可以选中批量下载,获取cookies 是为了方便程序员调试用。 获取cookies: git地址: https://gite...

NLGBZJ
12分钟前
2
0
152. Maximum Product Subarray - LeetCode

Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的,这个问题要注意正负,需要...

yysue
13分钟前
0
0
IDEA工具 jdk,tomcat,maven 配置

设置JDK、tomcat、maven的版本 一、JDK      如果下拉列表没有,SDKS ---> + ----> 选择下载的JDK目录 ---> APPLY OK    二、tomcat 三、Maven    四、生成 git 本地创库...

君千殇520
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部