SpringMVC学习
SpingMVC的拦截器
SpringMVC的拦截器类似于Servlet的过滤器,用于在请求服务器之前进行拦截和请求之后进行处理。
开发步骤:
a.定义拦截器
b.在核心配置文件springmvc.xml中配置拦截器
c.进入到相应Controller的方法中执行测试
拦截器的基本使用
a.定义拦截器
![63c64131ed3dd63d67edb35e01f78143.png](https://i-blog.csdnimg.cn/blog_migrate/1107227b3789864f6097a05b8b65ad34.jpeg)
![00a57053026381443dbe58379607fe1b.png](https://i-blog.csdnimg.cn/blog_migrate/74836dbf4ccb9a9222d22e26e98a1528.jpeg)
![9f7ea70e45e402cf935428d4f98484c4.png](https://i-blog.csdnimg.cn/blog_migrate/6f8840d1114a594bdfbd67a3fb7379fa.jpeg)
b.在核心配置文件springmvc.xml中配置拦截器
![f6bc69c75bb895879662b50258370c9d.png](https://i-blog.csdnimg.cn/blog_migrate/8a22ade454c7ea71f1a238649e61848c.png)
c.进入到相应Controller的方法中执行测试
访问任意一个页面,查阅控制台拦截器执行的顺序(与servlet的过滤器执行顺序相同)
![b6d5606f90630eada5d15f42b582e9ea.png](https://i-blog.csdnimg.cn/blog_migrate/c28ca01171cdf93a05ce5bc49eb3abf0.jpeg)
拦截器的应用实例
需求分析:如果用户没有登录,无法执行修改、查询等操作
开发步骤:
a.定义Controller(用户用户登录、退出)
b.定义拦截器
c.在核心配置文件springmvc.xml中配置拦截器
d.编写login.jsp,进入到相应Controller的方法中执行测试
a.定义Controller(用户用户登录、退出)
![6925fe4c99402183663e3779908f2afe.png](https://i-blog.csdnimg.cn/blog_migrate/0cfdce1582ff10ce992d61134de089a3.png)
b.定义拦截器
![b5b46831d877cf3a572a5f9497dfb3d4.png](https://i-blog.csdnimg.cn/blog_migrate/fbf76377d75b471cbc2b66fbacf960dd.jpeg)
c.在核心配置文件springmvc.xml中配置拦截器
![40e9dc8c511542a2345f59cfbc6c9dbf.png](https://i-blog.csdnimg.cn/blog_migrate/e3429a4e14487c35ac9dd76f8e265c51.png)
d.编写login.jsp,进入到相应Controller的方法中执行测试
![e6e7c3a1a67c6d97ec433a5050251e98.png](https://i-blog.csdnimg.cn/blog_migrate/2979949f13293b8c44dd1e6bdb021dc2.png)
直接访问:http://localhost:8080/SpringMVC_MyBatis/items/queryItems.action
第一次访问没有进行登录,因此该action被拦截器所拦截直接跳转到登录界面要求强制进行登录
![e543dc072f09c68983e455b99fb2e5da.png](https://i-blog.csdnimg.cn/blog_migrate/ed2efdc7767cc9ffcdac429d14bfe4e1.png)
输入任意数据模拟登录,数据能够正常操作
![722261a140d243ecf4cafd0af51a1fee.png](https://i-blog.csdnimg.cn/blog_migrate/6e4a4278d0a635e89e729611e1109794.png)
执行logout.action清空缓存数据(模拟登录退出操作),
再次访问http://localhost:8080/SpringMVC_MyBatis/items/queryItems.action,此时又再次强制跳转到相应登录界面
![45a13bfa9dd5a3d7fb1b0804e5f500d8.png](https://i-blog.csdnimg.cn/blog_migrate/958cc73cba3a98f5ae0b1fd5127a3298.png)