关于使用"/"来 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了,我想性能是最好的吧。

时间: 2024-12-06 07:42:30

关于使用"/"来 dispatcherServlet 的url-pattern带来的问题的相关文章

url pattern

Sep 27, 2016 2:32:31 PM org.apache.catalina.core.StandardContext checkUnusualURLPattern INFO: Suspicious url pattern: "/**" in context [/zmvc] - see sections 12.1 and 12.2 of the Servlet specification 在Servlet规范中,关于 web.xml 的 url-pattern <ser

http://crunchify.com/simplest-spring-mvc-hello-world-example-tutorial-spring-model-view-controller-tips/ 非常棒的spring入门,maven,以及eclipse

implest Spring MVC Hello World Example / Tutorial – Spring Model – View – Controller Tips Last Updated on 9 September, 2016  by  App Shah 285 Comments Do you have any one of below question? Developing a Spring Framework MVC 4 application step-by-step

ContextLoaderListener vs DispatcherServlet

In XML based Spring MVC configuration, you must have seen two declarations in web.xml file i.e. ContextLoaderListener and DispatcherServlet. Let’s try to understand their purpose in framework and their differences. Root and child contexts Before read

NopCommerce Url分析

using System; using System.Web; using System.Web.Routing; using Nop.Core; using Nop.Core.Data; using Nop.Core.Infrastructure; using Nop.Services.Events; using Nop.Services.Seo; using Nop.Web.Framework.Localization; namespace Nop.Web.Framework.Seo { /

django url调度

Django的url配置同样遵循着DRY(dont repeat yourself)的规则.以下都是官方文档的例子: 首先介绍的是Django如何处理http的请求: 1.在setting里定义ROOT_URLCONF ,这个值就是url的根配置,但若被request processing中间件定义了HttpRequest的urlconf属性,会替换掉ROOT_URLCONF 2.Django 加载模块,寻找 urlpatterns,它是pattern函数的返回值,是url的list 3.寻找每

关于Spring初始化配置中的dispatcherServlet的配置问题

前几年的web开发中,url通常是以.do..action..xhtml等等作为结尾,所以在web.xml中通常配置DispatcherServlet的url-pattern类似.do..action结尾,这样的配置方式导致dispatcherServlet只会拦截*do或者*.action结尾,当然这样的方式不会带来任何问题,例如:  <servlet>         <servlet-name>Spring</servlet-name>         <s

Spring MVC RESTful风格URL welcome-file-list不起作用问题解决

[Spring框架]<mvc:default-servlet-handler/>的作用 优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do . *.xhtml等方式.这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL. 如果将DispatcherServlet请求映射配置为"/",

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 . 系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)--ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)--用户授权认证问题 七天学会ASP.NET MVC (五)--L

django url

一个干净的,优雅的URL 方案是一个高质量Web 应用程序的重要细节. 这节我们来看看django是如何做到干净优雅的url的 1:Django如何处理一个请求 通过ROOT_URLCONF决定根URLCONF 调用所有的python模块找到urlpatterns(必须是一个列表) 按照顺序遍历url pattern,知道找到第一个匹配的项 如果找到,调用相应的view函数... 如果没找到,调用合适的错误处理函数 简单的url示例 from django.conf.urls import pa

线程问题、异常处理、自定义URL

线程问题.异常处理.自定义URL 本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 . 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会A