小工具      在线工具  汉语词典  css  js  c++  java

Spring mvc释放静态资源的方法

# Spring,mvc,spring,java 额外说明

收录于:152天前

Spring MVC是一个基于Servlet API构建的Web框架,全称是Spring Web MVC。

在传统的Servlet中,每个Servlet都有doGet和doPost方法。不管每个Servlet的功能如何,都需要创建一个Servlet API,这样徒劳地增加了力量。在 Spring MVC 中,有一个通用的 DispatcherServlet,它委托特殊的 bean 来处理请求并呈现适当的响应。这些特殊的bean 由Spring 管理。 Spring MVC 还需要 DispacherServlet。

在DispacherServlet中主要有以下Bean:
在这里插入图片描述
在这里插入图片描述
ViewResolver是视图解析器当配置了DispacherServlet后视图由该过滤器解析,还有HandlerMapping的拦截器,静态资源在后端返回时会被拦截。所以配置DispacherServlet后要进行静态资源的放行。

静态资源的三种方法:

  1. 修改拦截源。

在配置DispacherServlet的时url-parttern

<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

对应的路径是/表示除了jsp文件的所有文件都拦截,/*拦截所有,*为通配符,在这里可使用通配符拦截特定的url,如将Ajax或form的表单提交到.do.from的地址,使用通配符*.do、*.from拦截特定后缀的地址,就不会拦截静态资源了。

<servlet>
  <servlet-name>SpringMVC</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
  <servlet-name>SpringMVC</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

这样设置Spring就会只针对.do结尾的进行处理,但请求地址也也要加上该后缀。

  1. spring-mvc.xml配置文件释放静态资源

在spring配置文件中添加针对静态资源的释放配置,这样spring的视图解析器的拦截器就不会拦截静态资源。

<!--放行资源-->
<mvc:resources location="/" mapping="/**/*.js"/> 
<mvc:resources location="/" mapping="/**/*.css"/> 
<mvc:resources location="/assets/" mapping="/assets/**/*"/> 
<mvc:resources location="/images/" mapping="/images/*" cache-period="360000"/>

<!--拦截器忽略资源-->
<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**/*"/>
    <mvc:exclude-mapping path="/**/fonts/*"/>
    <mvc:exclude-mapping path="/**/*.css"/>
    <mvc:exclude-mapping path="/**/*.js"/>
    <mvc:exclude-mapping path="/**/*.png"/>
    <mvc:exclude-mapping path="/**/*.gif"/>
    <mvc:exclude-mapping path="/**/*.jpg"/>
    <mvc:exclude-mapping path="/**/*.jpeg"/>
    <mvc:exclude-mapping path="/**/*login*"/>
    <mvc:exclude-mapping path="/**/*Login*"/>
    <bean class="com.luwei.console.mg.interceptor.VisitInterceptor"></bean>
  </mvc:interceptor>
</mvc:interceptors>

选择以上两种方法之一来释放静态资源。

  1. 将无法解析的资源交给默认的Servlet进行处理。

每个Tomcat服务器都有一个默认的服务器default,可以在配置DispacherServlet时进行配置。 DispacherServlet 无法解析的资源由默认 Servlet 解析。

在 spring-mvc.xml 中启用默认 Servlet:

<mvc:default-servlet-handler/>

web.xml中增加对静态资源的处理:

<servlet-mapping>  
  <servlet-name>default</servlet-name>  
  <url-pattern>*.js</url-pattern>  
  <url-pattern>*.css</url-pattern>  
  <url-pattern>/assets/*"</url-pattern>  
  <url-pattern>/images/*</url-pattern>  
</servlet-mapping>

但当前的设置必须在Spring的Dispatcher前面。

. . .

相关推荐

额外说明

一些想法和经历

在学习一些东西的时候,不能一贯的只是去听,这样会有疲劳感,打不起精神来。 很难高效的继续下去,强迫自己这样下去,中途可能就会中断,无法再继续。 方法: 要在听完一个部分后,马上动手去做,去实践,这样一来可以巩固新的知识,二来可以消除疲劳感。 人外有人,结

额外说明

《PostgreSQL开发指南》第24章 索引与优化

《PostgreSQL 开发指南》专栏目录 第 01 篇 课程介绍 第 02 篇 PostgreSQL 简介 第 03 篇 PostgreSQL 安装 第 04 篇 角色与用户 第 05 篇 数据库与模式 第 06 篇 管理数据表 第 07 篇 管理表空

额外说明

Java后台——点餐小程序点餐取号接口的编写

QQ 1274510382 Wechat JNZ_aming 商业互捧 QQ群538250800 技术搞事 QQ群599020441 技术合作 QQ群152889761 加入我们 QQ群649347320 纪年科技aming 网络安全 ,深度学习,嵌入式

额外说明

leetcode刷题(4)

各位朋友们,大家好。这两天我将为大家分享我在学习栈的过程中遇到的题目,我们一起来看看。 文章目录 逆波兰表达式求值 题目要求 用例输入 提示 做题思路 代码实现 c语言实现代码 Java语言实现代码 有效的括号 Java代码实现 逆波兰表达式求值 lee

额外说明

Redis秒杀功能设计与实现

前言 抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了 抢购中的几个常见问题 如何设计抢购功能?(表结构,以及整体的抢购思路) 不借助中间件

额外说明

jenkins集成tomcat

前言 |通过前几篇的配置,jenkins能够通过拉取gitlab上面的项目代码到本地目录,然后再使用maven命令将项目打成war包,最后一步就是将war包部署到tomcat容器中,下面简单演示一下配置的过程 配置步骤 1、在jenkins所在服务器或者

额外说明

git log 提交日志及图形化显示

git log 命令用来显示提交记录。 该命令可以添加一些参数用来更好显示记录。 git log 使用参数选项演化 git log git log --oneline git log --graph --oneline git log --graph -

额外说明

《天天数学》连载60:二月二十九日

2月29日 XXIX 只有闰年才有2月29日。闰年是指能被400整除的世纪年,或者其它能被4整除的非世纪年。 数学格言 逻辑是满怀信心走入歧途的艺术。——莫里斯·克莱因(Morris Kline) 数学习题 一个锥体大口杯,在距离杯口 1 2 \disp

额外说明

MUSICGEN:简单可控的音乐生成

文章目录 摘要 1、简介 2、方法 2.1、音频词元化 2.2、码本交错模式(见图1) 2.3、模型调节 2.4、模型架构 3、实验设置 3.1、模型和超参数 3.2、数据集 3.3、评价 4、结果 4.1、与基线的比较 4.2、旋律评价 4.3、消融

额外说明

解决打开程序出现component ‘Mscomctl.ocx‘ or one ...

使用DLLEsocrt软件解决这个问题 使用DLLEscort软件自动修复 DLLEscort软件能够修复解决常见的Windows系统文件与系统所需的大部分运行库,它可以帮助您一键修复系统软件或游戏丢失的DLL运行库文件,节省您的宝贵时间。 如果是因为缺

ads via 小工具