关于拦截器
包结构
控制器代码
web.XML配置
springmvc配置拦截器
当我访问
prehandler方法执行 说明拦截了
当我访问
没有拦截成功
同时我设置了一个静态资源管理
当我访问
说明拦截了
不加static路径
jsp不拦截
html不拦截
不在控制器的不拦截
加了static
只有jsp不拦截
那到底拦截什么呢 求解答
关于拦截器
包结构
web.XML配置
当我访问
当我访问
同时我设置了一个静态资源管理
当我访问
说明拦截了
不加static路径
jsp不拦截
html不拦截
不在控制器的不拦截
加了static
只有jsp不拦截
那到底拦截什么呢 求解答
咋说呢,嗯~~~~~,就是在 SpringMVC 中,拦截器(Interceptor)是一种强大的机制,用于在请求前和请求后对控制器进行前期的预处理和后期的处理。拦截器可以拦截控制器方法和静态资源的访问,可以实现各种各样的功能,例如:鉴权、日志记录、性能监测等等。
在默认情况下,SpringMVC 拦截器会拦截所有通过 DispatcherServlet 进行处理的请求,通过继承 HandlerInterceptor 接口中的方法实现前、后预处理。
拦截器在请求到达 DispatcherServlet 时被调用,在 DispatcherServlet 调用处理请求之前,此时可以进行一些前期的预处理。在调用完控制器后,DispatcherServlet 则会将响应发送给浏览器,拦截器也可以在这个时候进行一些后期的处理。
在代码中,可以看到自定义的拦截器类实现了 HandlerInterceptor 接口,并重写了 preHandle 方法。在 preHandle 方法中,当用户访问 /hello ** 地址时,在打印一条数据后,返回 false 以中止请求,这种情况下用户将看到 “Unauthroized” 响应,否则返回 true,请求可以继续执行。
通过配置实现了将拦截器应用到控制器方法和静态资源请求的过程中。可以看到静态资源的拦截器已经被配置为只对 .jsp 请求开启拦截。
因此,综上所述,SpringMVC 拦截器可以拦截所有的通过 DispatcherServlet 进行处理的请求,包括控制器方法和静态资源请求。但在实际应用中,控制器方法通常是需要被拦截的,而静态资源不一定需要被拦截,因此可以通过配置来控制拦截器的应用范围。