当前位置: 首页 > news >正文

关于使用/来 dispatcherServlet 的url-pattern带来的问题

之前一直使用*.do来做的,但是绝的*.do很丑,于是就改用“/”来配置:

<servlet>  
     <servlet-name>dispatcherServlet</servlet-name>  
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
     <load-on-startup>1</load-on-startup>  
 </servlet>  
  
 <servlet-mapping>  
     <servlet-name>dispatcherServlet</servlet-name>  
     <url-pattern>/</url-pattern>  
 </servlet-mapping> 

但是带来的问题是如何访问到静态的文件,如jpg,js,css?

如果你的DispatcherServlet拦截"*.do"这样的有后缀的URL,就不存在访问不到静态资源的问题。

如果你的DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对*.js,*.jpg等静态文件的访问也就被拦截了。

我们要解决这个问题。

目的:可以正常访问静态文件,不可以找不到静态文件报404。

方案一:激活Tomcat的defaultServlet来处理静态文件

<servlet-mapping>     
    <servlet-name>default</servlet-name>    
    <url-pattern>*.jpg</url-pattern>       
</servlet-mapping>      
<servlet-mapping>         
    <servlet-name>default</servlet-name>      
    <url-pattern>*.js</url-pattern>      
</servlet-mapping>      
<servlet-mapping>          
    <servlet-name>default</servlet-name>         
    <url-pattern>*.css</url-pattern>        
</servlet-mapping>  

要写在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入spring了,我想性能是最好的吧。

 

相关文章:

  • c语言中函数的形参test(int *a)?
  • Core Bluetooth下实现两个设备进行互联
  • MyEclipse开发WebService教程
  • noi 2989 糖果
  • 微软Hyper-v管理——迁移虚拟(奇葩问题)
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • 每天学点数据结构与算法
  • Zabbix服务器监控系统部署之自定义监控项的添加及配置(二)
  • PYTHON 黑帽编程 1.5 使用 WIRESHARK 练习网络协议分析
  • Javascript 函数节流
  • 利用python做数据分析(六)-reindex
  • GitHub 小试
  • Actor模式的弊端
  • 广告
  • 自学的IT程序员通常缺少哪些技能
  • Docker: 容器互访的三种方式
  • Flannel解读
  • JavaScript函数式编程(一)
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Shell编程
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 观察者模式实现非直接耦合
  • 你不可错过的前端面试题(一)
  • 排序(1):冒泡排序
  • 悄悄地说一个bug
  • 手机端车牌号码键盘的vue组件
  • 探索 JS 中的模块化
  • 微服务核心架构梳理
  • 物联网链路协议
  • 用 Swift 编写面向协议的视图
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #1015 : KMP算法
  • #laravel 通过手动安装依赖PHPExcel#
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (poj1.2.1)1970(筛选法模拟)
  • (SpringBoot)第七章:SpringBoot日志文件
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)WLAN定义和基本架构转
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)平衡树
  • (转)一些感悟
  • ***详解账号泄露:全球约1亿用户已泄露
  • .net 7 上传文件踩坑
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 常见的偏门问题
  • .Net6使用WebSocket与前端进行通信
  • .NET运行机制
  • /bin/bash^M: bad interpreter: No such file or directory
  • @Autowired @Resource @Qualifier的区别
  • @column注解_MyBatis注解开发 -MyBatis(15)