首页 > 其他分享 >静态资源映射

静态资源映射

时间:2023-06-08 17:48:01浏览次数:42  
标签:拦截器 请求 映射 静态 SpringMVC 过滤器 资源

静态资源映射
概念:在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 能够被多个拦截器所拦截,全局拦截器最先执行,
其他拦截器根据配置文件中配置的上下顺序来决定执行顺序的。先配置谁, 谁就先执行。

 

标签:拦截器,请求,映射,静态,SpringMVC,过滤器,资源
From: https://www.cnblogs.com/ningbaoer/p/17467224.html

相关文章

  • 动态ip和静态ip
    IP地址:IP协议中有一个非常重要的内容,那就是给互联网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。为了通过网络发送或接收数据,传输控制......
  • SparkUI中的Peak Pool Memory Direct / Mapped (直接缓冲池和映射缓冲池)
      PeakPoolMemoryDirect/Mapped --直接缓冲池和映射缓冲池峰值内存##什么是直接缓冲池和映射缓冲池?在Java中,有两种类型的缓冲池:直接缓冲池和映射缓冲池。直接缓冲池1)从堆外内存分配,不受JVM管理2)占用内存较多3)相比从JVM复制数据到本地,性能更高 映射缓冲池1)将文......
  • 静态
    27、内部类可以引用它的包含类的成员吗?有没有什么限制?完全可以。如果不是静态内部类,那没有什么限制!如果你把静态嵌套类当作内部类的一种特例,那在这种情况下不可以访问外部类的普通成员变量,而只能访问外部类中的静态成员,例如,下面的代码:classOuter{staticintx;staticclass......
  • 前端 & 设计师常用图标资源库
    1.Iconfont阿里倾力打造的矢量图标管理、交流平台,设计师将图标上传到iconfont平台,用户可以自定义下载多种格式的icon,平台也可将图标转换为字体,便于前端工程师自由调整与调用。地址:Iconfont2.FontAwesome互联网上最流行的图标工具包已经重新设计,从头开始构建。除此之......
  • 资源-vscode 插件
    2023-6bettercomments//todo会高亮gitlensliveserver如果有安装npm的就更好prettier-codeformatterremoveemptylines虽然可以正则替换但是还是这个方便rainbowcsvofficeviewer不会自动更新的。还是简单用这个查看一下autorenametag好像会导致bug?......
  • MyBatis学习笔记(4)—— XML映射文件の结果集(Result Maps)高级结果映射中的集合(collectio
    集合<collectionproperty="posts"ofType="domain.blog.Post"><idproperty="id"column="post_id"/><resultproperty="subject"column="post_subject"/><resultproperty="......
  • java代码格式化和静态分析检查
    java代码格式化和静态分析检查引言:在Java软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。Java静态代码分析(staticcodeanalysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开......
  • Java 静态构造块异常抛出处理方法
    static{try{privateObjectobj=newObject();}catch(Exceptione){log.error(e);}}静态构造块中的异常不要抛出,否则会造成类初始化异常!......
  • 使用eNSP模拟器配置静态路由
    知识点延伸:什么是静态路由?答:静态路由是指由网络管理员手动配置和维护的路由。静态路由配置简单,无须像动态路由那样占用路由器的CPU资源来计算和分析路由更新,还可以实现负载均衡和路由备份。1.任务要求:(1)PC1、PC2实现网络互通;(2)源网络和源目的网络之间存在多条链路,使用等价路由实......
  • hdfs目录上/tmp/hive空间资源过大问题
    HDFS上tmp/hive空间资源占用过大的原因,有啥清理机制呢Hive的临时目录是用来存放不同阶段的map/reduce任务的执行计划和中间结果的,如果Hive任务成功完成的话,临时文件会被自动清理,如果Hive任务被取消或者中断,那么这个任务的临时文件就会被遗留下来。可以手动删除这些旧文件,但不要删除......