一一进行演示
创建工程
将restful的代码复制过来,方便演示
打开xml增加依赖
provided只有在开发编译才会进行引用,当进行打包最终使用的时候jar会被排除在外
增加拦截器包
生成三个方法
为什么要引入刚才那个依赖?
因为
这三个方法都是指向了原生的request和response对象,如果不引入依赖程序就会报编译的错误
return true就会送达给后面的拦截器或者是控制器,false就会直接返回客户端了,结果决定了是继续执行还是立即结束向后返回响应,这对程序的控制是非常重要的
目标资源被处理成功以后,但是没有产生响应文本之前,所要做的事情
目标的相应文本产生以后,就会执行这个方法
在applicationContext里进行配置让springmvc去识别
对所有的请求进行拦截,然后被拦截的请求首先送达至Myinterceptor并按照里面实现方法的前后顺序依次进行执行
运行
响应返回成功,查看控制台
这句话是在增加的
1-2 Interceptor使用技巧在实际使用时还会有诸多问题需要解决
启动
但是在控制器却打印出了许多额外的信息
每一次发送localhost这个url的时候其本质都是通过tomcat来调用springmvc的解析功能,来获取对应的资源,这些资源因为符合/**的规则所以都会被拦截
拦截器不受这句话影响
排除一些静态地址
再次运行
此时只对client.html进行了捕捉
静态种类实在是太多了,如果像上述那样一个一个配置可能会很长很长,如何让我们对静态资源和controller应用进行有效的区分呢?
将静态资源统一管理
通过管理静态资源目录来统一的把这些排除在外
反向思维也是可以的比如只对restful下的所有请求进行拦截
如果需要多个uri进行拦截的地方,追加书写
如果一个请求被多个拦截器同时过滤的话,到底哪个先执行?
增加myinterceptor1
对新的拦截器进行配置
两个拦截器作用的uri是一样的,那个先执行?那个后执行呢?、
顺序颠倒,为什么呢?
return false中断会产生什么现象呢?
应该执行的请求和后续处理被全部阻断,同时响应在当前的方法中全部产生了
传入一个数组测试一下
在请求的相应部分得到的就是拦截器中产生的响应文本
1-3 Inteceptor和Filter的区别



