网站建设动态,网站建设实训总结,江苏网站备案暂住证,西安建公司网站拦截器一. 概念拦截器和AOP的区别#xff1a;拦截器和过滤器的区别#xff1a;二. 入门案例2.1 定义拦截器bean2.2 定义配置类2.3 执行流程2.4 简化配置类到SpringMvcConfig中一. 概念
引入#xff1a; 消息从浏览器发送到后端#xff0c;请求会先到达Tocmat服务器#x…
拦截器一. 概念拦截器和AOP的区别拦截器和过滤器的区别二. 入门案例2.1 定义拦截器bean2.2 定义配置类2.3 执行流程2.4 简化配置类到SpringMvcConfig中一. 概念
引入 消息从浏览器发送到后端请求会先到达Tocmat服务器 将请求划分成动态、静态资源处理动态 动态的资源经过Filter过滤器 过滤器放行后才是Spring中央控制器会根据访问分发到controller中 controller操作执行完后返回数据给浏览器
当如果想让每个controller被访问之前和后做一件事---- 拦截器 如权限控制需要看访问是否有权限访问这个controller
定义拦截器是一种动态拦截方法调用的机制在SpringMVC中动态拦截controller方法的执行
作用
在指定的方法调用前后执行预先设定的代码阻止原始方法的执行如权限控制
拦截器和AOP的区别
AOP是原始方法确定会被调用在调用前后做增强处理拦截器是决定你能不能调用方法
拦截器和过滤器的区别
1.归属不同Filter属于Servlet技术Interceptor拦截器属于SpringMVC技术 SpringMVC的功能可以在拦截器中操作但不能在Filter中操作 2.拦截范围不同 Filter过滤器是在Tomcat服务器阶段配置能对所有请求进行增强 拦截器仅仅是对SpringMVC阶段操作SpringMVC能接受哪些访问取决于容器启动配置中的设置
二. 入门案例
2.1 定义拦截器bean
1在controller层新建一个拦截器层创建一个自定义interceptor拦截器类配置成bean
2自定义拦截器类 实现 HandlerInterceptor并重写preHandle、postHandle、afterCompletion三个方法
preHandle方法返回false会终止原始操作原始操作后面的也不再执行而true会都执行。可以用此增加判断逻辑满足则true不满足则false。
3让SpringMVC加载到拦截器 保证SpringMVC能扫描到 此时拦截器类就在controller目录下不需要改
2.2 定义配置类
1在config包下定义一个SpringMvcConfig配置类类似addResourceHandlers分发者服务继承WebMvcConfiguartionSupport实现 addIntercepter方法
2将之前定义的拦截器ProjectInterceptor的bean注入 再指定路径如当调用“/books”请求时拦截 3让SpringMVC能扫描到配置类
效果 后台
注意 只有books 才会被拦截而books/100 不会被拦截 改 books, books/* 即可
2.3 执行流程
在拦截器类中preHandle方法返回false会终止原始方法及其之后的所有操作而返回true会都执行。
2.4 简化配置类到SpringMvcConfig中 缺点拦截器类和Spring绑定在一起了侵入性较强