自定义拦截器的实现: 1. 编写拦截器实现HandlerInterceptor接口
2,将拦截器注册进SpringMVC框架中;3,
配置拦截器拦截规则(那些请求经过拦截器,如果不配置默认所有请求经过拦截器)
拦截器方法介绍:
preHandle方法:在请求被处理之前调用
postHandle方法:在请求被处理之后进行调用
afterCompletion方法:在请求结束之后进行调用(主要是对资源进行销毁,很少用)
拦截器的其他实现方式
拦截器的类还可以通过实现WebRequestInterceptor
向SpringMVC框架注册的学法不变
2,将拦截器注册进SpringMVC框架中;3,
配置拦截器拦截规则(那些请求经过拦截器,如果不配置默认所有请求经过拦截器)
拦截器方法介绍:
preHandle方法:在请求被处理之前调用
postHandle方法:在请求被处理之后进行调用
afterCompletion方法:在请求结束之后进行调用(主要是对资源进行销毁,很少用)
拦截器的其他实现方式
拦截器的类还可以通过实现WebRequestInterceptor
向SpringMVC框架注册的学法不变
2017-12-31
第四点:值栈是struts中数据存储的对象,不应该把它归为拦截器的特点。
第五点:拦截器和过滤器都每次请求,匹配路径每次请求都会执行,我不知道过滤器只能在初始化时被调用的结论哪来的。
第六点:获取Bean这又是spring的内容,作为拦截器的特点来说不合适。并且,spring mvc拦截器之所以能够获取bean,是因为拦截器本身是由spring-mvc的上下文管理的。严格来说,filter只要能够拿到spring上下文,同样能够获取bean.
第五点:拦截器和过滤器都每次请求,匹配路径每次请求都会执行,我不知道过滤器只能在初始化时被调用的结论哪来的。
第六点:获取Bean这又是spring的内容,作为拦截器的特点来说不合适。并且,spring mvc拦截器之所以能够获取bean,是因为拦截器本身是由spring-mvc的上下文管理的。严格来说,filter只要能够拿到spring上下文,同样能够获取bean.
2017-11-11
第一点:拦截器是基于Java反射的?你从配置文件中读取类的全限定名从而从构建拦截器的类对象,如果你把这说成是拦截器的特点,那么,过滤器同样也可以说成是基于Java反射的。
第三点:拦截器只对action请求起作用,而过滤器对所有请求起作用。这点完全是瞎讲,不知道是谁总结的,拦截器的拦截请求的作用域最大为框架配置的请求作用范围,同样过滤器的范围也完全取决于过滤器的拦截请求路径的配置。拿spring mvc来讲,如果你将dispatcherServlet的匹配路径设置为/*,那么spring mvc的拦截请求范围可以和filter一样大,只是filter是容器本身实现的,优先级高于框架。
第三点:拦截器只对action请求起作用,而过滤器对所有请求起作用。这点完全是瞎讲,不知道是谁总结的,拦截器的拦截请求的作用域最大为框架配置的请求作用范围,同样过滤器的范围也完全取决于过滤器的拦截请求路径的配置。拿spring mvc来讲,如果你将dispatcherServlet的匹配路径设置为/*,那么spring mvc的拦截请求范围可以和filter一样大,只是filter是容器本身实现的,优先级高于框架。
2017-11-11
拦截器和过滤器(总结的太好了,我复制一下)
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑
2017-09-29