1、SpringMVC如何快速实现Interceptor
2、第二步配置拦截器在SpringMVC.xml中进行配置
3、第三步测试拦截器效果,如果没有拦截器我可以直接访问到,如果有我不一定能访问到:
3.1
4、这里SpringMVC的配置文件我已经配好了
5、弄一个方法和虚拟地址:
6、这里跳转到index页面,在我们的web中的index中
7、这里的运行流程是这样的,我们在访问show方法的时候:-----》先创建ModelandView------》ModelANDView设置数据---->View视图index-----》跳转到页面
创建数据itcast
8、
9、${name}取之前存的数据,就是在modelAndView里存的数据
10、访问一下路径,效果是这样
11、控制台数据运行
12、现在我们开始实现一个Interceptor,先创建一个
13、名字按照这个:
14、写完之后的第一件事,弄一个接口 Handler.... ,但是现在没有绕行的方法
15、写第一个方法:preHandle
16、第二个方法postHandler
17、写第三个方法
18、第一个方法pre ,意思是在什么什么之前:这个方法是在目标方法执行前执行:谁啊,show方法,他没执行,他就执行了
19、第二个方法post,在目标方法执行之后
20、视图数据在,但是还没有接收过数据,有没有让页面接受到页面的数据
21、第三个是指视图对象都执行完毕后,再执行可以做一些收尾的工作
22、你的视图对象有没有进行返回,验证能执行:
23、这里写的项目还不能用,因为我们要把他弄一个项目配置:右键配置权限名:
24、找到我们springMVC.xml,配置fileter,什么知道包名,等
25、用一个MVC-inter
26、这里面可以配置很多interceptoer
27、这个bean需要什么,就是我刚才写的MyIntercepter的全限定包名
就是告诉spring框架我的拦截器就是他:
28、MVC:.... 代表着对那些资源进行拦截操作:
28.1 /** 代表对所有的进行拦截操作:
29、为了好看我清空一下:
30、刚才页面有效果,但现在没有效果了
31、pro有一个布尔值,如果返回是false,那么后面两个方法就都不用执行了,因为截住了。
31.1
32 、如果返回true
33、其他方法都行了
34、以上就是我们入门的操作
34.1
--------------SpringMVC拦截器快速入门详解,第一个我们可以用一个request和reponse以及handler一些请求的命令,比如APP请求,我们可以封装到request当中, 我可以从内部当中进行获取
35.1 这里同时也代表着:你打开之后能不能返回
35.2 使用reponse重定向,使用request转发:从而避开目标资源,转向其他资源
36、抛出之外,还有ModelandView,要把模型进行操作之后,我在这里进行获取,获取之后相应的给他改掉
37、我们一般在控制器设置ModelAndView,第二个操作一般被称为后操作
38、第三个方法用来封装异常: Exception
39、用if逻辑判断,我怎么进行判断:使用request可以获取相应的参数
39.1、使用getParm.....
这个参数叫parm:加个.var的写法
40、这个parm进行if判断:如果为yes,我就让他放行
40.1 放行直接return true就行
41、你可以不放行,但是你得给我跳到别的视图当中
41.1 用get.....
42、跳转到那个视图,这里我可以建一个视图
再建一个
42.1 建一个jsp的文件:
errory页面
43、dispatcher
43.1、这个逻辑干吗?给他抛出去
44、这个项目的逻辑是携带yes,就让你放行,然后让你通过:
44.1 能放行,最终就能够访问到他
44.2 如果不是yes就不放行,就让你跳转到jsp页面
45、重新发布一下:
46、这里出了一个bug,正确的写法是yes,修改完重新发布
47效果:parm不带参数
47.1 带了yes参数,你就能访问到我们的资源,这是第一个方法常用的业务场景
48、使用ModelandView进行结果修改:
49、配置方面的知识:/XXX 意思是xxx后面的相关资源
49.1
50、拦截器数量没有限制,可以设置多个:
50.1
51、设置多个要做的地方,写好类之后,给他配置一个:
52、给他写个放行:
52.1 然后给他配置一下,把他copy一下:
配置完给他发布一下就行
53、效果回车,然后看控制台:
54、看控制台,谁先执行的:
1的pro先执行,然后2的Pro再执行,然后。。。。。
55 xml的配置顺序和执行顺序有联系:
56、总结一下拦截器对应的方法
56.1 方法总共有三个,第一个是Pro