静态资源映射
概念:在web开发中,对静态资源映射是必不可少的,而所谓的静态资源映射,通俗来说,
就是给项目导入图片,js,css等资源,同时可以进行访问。
1. 通过 DefaultServlet 处理静态资源
在 spring3.0.4 以后的 SpringMVC 模块提供了静态资源映射器组件。
通过 mvc:resources标签配置静态资源映射器
在 SpringMVC 的配置文件中配置<mvc:default-servlet-handler />后,
会在 Spring MVC 上下文中定义一个 org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
它会像一个检查员,对进入 DispatcherServlet 的 URL 进行筛查,
如果发现是静态资源的请求就将该请求转由 Web应用服务器默认的 Servlet 处理,
如果不是静态资源的请求,才由DispatcherServlet 继续处理
2.修改 SpringMVC 配置文件
<mvc:default-servlet-handler/>
3.SpringMVC 的异常处理
使用 @ControllerAdvice + @ExceptionHandler 进行全局的 Controller 层异常处理,
就再也不用在 Controller 层进行 try-catch 了,将 Controller 层的异常和数据校验的异常进行统一处理,
减少模板代码,减少编码量,提升扩展性和可维护性
4.SpringMVC*拦截器
4.1概念:Spring MVC 的拦截器(Interceptor)与 Servlet 的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理,
通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。
4.2拦截器和过滤器的区别
拦截器是SpringMVC 组件,而过滤器是 Servlet 组件。
拦截器不依赖容器,过滤器依赖容器。
拦截器只能对控制器请求起作用,而过滤器则可以对所有的请求起作用。
拦截器可以获取 IOC 容器中的各个 bean,而过滤器就不太方便
4.3定义拦截器
在 Spring MVC 中定义一个拦截器需要对拦截器进行创建和配置。创建拦截器时需要实现 HandlerInterceptor 接口。
preHandle方法 前置拦截
postHandle*方法 后置拦截
afterCompletion方法 释放资源
4.4 拦截器的顺序 配置顺序 ,就是执行顺序
一个 URL 能够被多个拦截器所拦截,全局拦截器最先执行,
其他拦截器根据配置文件中配置的上下顺序来决定执行顺序的。先配置谁, 谁就先执行。