REST風格下如何放行靜態資源

2022-02-10 14:55:21 字數 1654 閱讀 4604

在配置dispatcherservlet(前端控制器)時,如果把攔截路徑配置成rest風格(即斜槓/),則會將靜態資源也一併攔截(比如.css .js ,jpg)為了避免這個情況,可以把攔截路徑設定成*.do, *.action, *.html等等

springmvc

org.springframework.web.servlet.dispatcherservlet

contextconfiglocation

classpath:springmvc.xml

/是將符合條件的請求路徑攔截,然後與dispatcherservlet內的路徑匹配,靜態資源的路徑不在dispatcherservlet內,所以會報404

但是,確實想要使用rest風格的話,應該怎麼避免靜態資源被攔截呢?

tomcat的預設servlet名字是default,所以標籤內寫default.

在springmvc-servlet.xml中配置後,會在spring mvc上下文中定義乙個org.springframework.web.servlet.resource.defaultservlethttprequesthandler

如果發現是靜態資源的請求,就將該請求轉由web應用伺服器預設的servlet處理,如果不是靜態資源的請求,才由dispatcherservlet繼續處理

如果使用的web應用伺服器的預設servlet名稱不是default,那麼需要再配置default-servlet-name屬性,如下

1<

mvc:default-servlet-handler

default-servlet-name

="所使用的web伺服器預設使用的servlet名稱"

/>

1

<

mvc:resources

location

="/,classpath:/meta-inf/publicresources/"

="/resources/**"

/>

會由spring mvc框架自己處理靜態資源,而不是把靜態資源的處理交給web應用伺服器處理.

允許把靜態資源放在任何地方,比如web-inf目錄下,類路徑下,(正常情況下是不可以放在這些位置的,傳統web容器的靜態資源只能放在web容器的根路徑下)甚至可以把靜態檔案打包到jar中.

location : 檔案真實的路徑,是resources型別的屬性,因此可以使用諸如"classpath:"等的資源字首指定資源位置

spring mvc靜態資源放行

1,全部資源放行 2,選擇部分資源放行 以上倆種之前要注意先配置 方式二 在web.xml中放行 方法一 配置前段 放行 console org.springframework.web.servlet.dispatcherservlet contextconfiglocation classpath...

Spring MVC 放行靜態資源

使用spring mvc 放行靜態資源有四種方法 2.使用 3.在web.xml中配置 default 是tomcat的預設servlet的名稱 4.配置dispatchservle的url匹配規則 dispatcherservlet org.springframework.web.servlet....

SpringMVC 放行靜態資源

靜態資源到處都是坑 明白原理才能繞過這些坑 在web.xml檔案的配置中,四種路徑編寫方式優先順序如下圖 其中b和d都能接收所有請求,僅僅是在優先順序上有區別。d是優先順序最低的,所以如果乙個路徑有 人 要就不會執行到d,tomcat伺服器 無論什麼伺服器 有乙個預設的請求處理方案 在tomcat伺...