1. 程式人生 > >Spring MVC RestFul風格對css.js等檔案的攔截處理方法大全

Spring MVC RestFul風格對css.js等檔案的攔截處理方法大全

文章摘自:http://www.blogjava.net/fiele/archive/2014/08/24/417283.html

用 Spring MVC 開發應用程式,對於初學者有一個很頭疼的問題,那就是程式資料都已經查詢出來了,但介面樣式仍然十分醜陋,載入不了 css,js,圖片等資原始檔。當你在瀏覽器上直接輸入某個css檔案的路徑時,直接得到404錯誤,而路徑肯定沒有錯,其原因就在於在web.xml 中配置了類似如下的 spring servlet:

程式程式碼 程式程式碼
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

請注意  <url-pattern>/</url-pattern> 這表示這個servlet 攔截了所有的請求,包括css,js等。所以出現上面描述的情況。如何解決這個css,js等路徑問題呢,有如下幾種解決方案.

1. 使用spring mvc resource 去讀取靜態檔案
比如在 WEN-INF 下建立static 資料夾,並在 static 資料夾裡面建立css 資料夾,然後建立 1.css  檔案.
修改 mvc-dispatcher-servlet.xml 檔案

程式程式碼 程式程式碼
<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>

這樣配置之後,可以通過 http://your-ip:port/your-app/static/css/1.css 直接訪問了。

2. 採用 default servlet 
在 web.xml  裡面配置

程式程式碼 程式程式碼
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

這樣做了之後,所有字首為static 的請求都交給default servlet 去處理。如果你請求  http://your-ip:port/your-app/static/css/1.css ,就表示在 webcontent 目錄下的css資料夾下的1.css檔案。

3. 通過副檔名進行處理 

在 web.xml 裡面配置
程式程式碼 程式程式碼
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>


4. 對spring servlet 不用restful 風格。在url 上加上字首 
程式程式碼 程式程式碼
<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/app</url-pattern> 
</servlet-mapping>

這樣做的目的是讓 dispatchservlet 去攔截以/app 開頭的那些 URL,並不攔截css,js等。

5. 對spring servlet 不用restful 風格。在url 上加上字尾 
程式程式碼 程式程式碼
<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping>

這樣做的目的是讓 dispatchservlet 只攔截*.do 的url. 並不攔截css,js等。

上面介紹的5種方法,根據情況自己任意選擇一種,現在沒辦法說那種好,那種方法不好,都有可取之處,用在不同的場景而已。 

相關推薦

Spring MVC RestFul風格css.js檔案攔截處理方法大全

文章摘自:http://www.blogjava.net/fiele/archive/2014/08/24/417283.html 用 Spring MVC 開發應用程式,對於初學者有一個很頭疼的問題,那就是程式資料都已經查詢出來了,但介面樣式仍然十分醜陋,載入不了 css

spring mvc 頁面訪問圖片或者js靜態檔案路徑出錯問題

這是web工程的結構,圖片放在images資料夾下,js檔案放在resource資料夾下 然後就是進行spring mvc的配置,我上一篇文章就有講到怎麼去配置,但只是

Spring MVC restful風格之put and delete

由於瀏覽器不支援PUT和DELETE方法,那麼我們如何通過Spring實現PUT和DELETE的rest風格呢? 步驟一:         在web.xml中新增一個Spring的過濾器HiddenHttpMethodFilter,對DispatcherServlet進行預

Spring mvc中不能引入js靜態檔案問題的解決方案

No mapping found for HTTP request with URI [/.../script/jquery-3.1.0.min.js] in DispatcherServlet with name 'springDispatcherServlet' 分析一

TP5框架CSS,JS檔案引入問題

tp5的公共檔案是放在public路徑下,在該目錄下自己可以建立css,js等資料夾來儲存檔案。但是在引用這些檔案時,在模組中的view檢視中直接使用<link href="/css/general.css" re

Spring Boot thymeleaf模版支援,css,js靜態檔案新增

Thymeleaf引入 Thymeleaf是一個Java模板引擎開發庫,可以處理和生成HTML、XML、JavaScript、CSS和文字,在Web和非Web環境下都可以正常工作。 1.新增依賴包 <dependency> <groupId>org.springf

spring mvc web引入js檔案

在web.xml中的配置: <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.serv

Spring MVC通過Pageable象和PageableDefault註解獲取分頁信息(MongoDB通過Pageable來操作分頁)

組織 nbsp dal ref 註解 tro urn dir 個性 說明:Pageable同時也能用於操作MongoDB的分頁。 PageableSpring Data庫中定義的一個接口,該接口是所有分頁相關信息的一個抽象,通過該接口,我們可以得到和分頁相關所有信息(例如

RestTemplate訪問Spring MVC restFul介面

在Spring MVC中,訪問restful介面:  RestTemplate restTemplate=new RestTemplate(); SimpleClientHttpRequestFactory requestFactory = new SimpleCl

Spring MVC實現靜態資源訪問,viewcontroller,攔截器,路徑匹配配置

spring mvc 定製配置需要配置類繼承 一個webmvcconfigureradapter ,通過重寫這個類的方法,來完成常用的配置 包括靜態資源 , controller ,攔截器,路徑匹配的配置等等 具體程式碼如下 @Component public class WebMv

Java後臺框架篇--SpringRestful風格API介面開發

Restful風格的API是一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。 在Restful風格中,使用者請求的url使用同一個url而用請求方式:get,post,

解決SpringBoot前端jsp、html頁面無法載入cssjs檔案的問題

用IDEA編寫前端頁面的時候發現不能載入css和js檔案,執行後效果是這樣的: 程式碼如下: 明明路勁載入對了卻顯示不出來,帶著疑惑在網上查找了許多文件,最後發現是由於SpringBoot機制問題,引用css或js檔案的時候需先將檔案放在static資料夾下

maven-replacer-plugin 靜態資源版本號解決方案(css/js

本文介紹如何使用 maven 的 com.google.code.maven-replacer-plugin 外掛來自動新增版本號,防止瀏覽器快取。 目錄 1.解決方案 2.原始檔案和最終生成效果 3.pom.xml 中外掛新增 4.html中 css/js 檔案引用規則 5.結語 1.解決方案 解

spring mvc rest風格常用註解以及跨域的配置

Annotation 作用 說明 @GET 查詢請求 相當於資料庫的查詢資料操作 @POST 插入請求 相當於資料庫的插入資料操作 @PUT 更新請求 相當於資料庫的更新資料操作 @DEL

菜鳥小白使用node.js搭建簡單伺服器(可請求圖片,html,js,css,json檔案

使用node.js搭建簡單伺服器 前言:以下步驟在安裝好node的環境前提下進行,未安裝者請先安裝好node,再嘗試 注:如若以下程式碼存在錯誤,歡迎讀者指出 搭建步驟如下: 一、建立server.js(主要用於搭建伺服器的檔案) const ht

Spring-Boot -- RESTFUL風格的API介面的三種呼叫方式【測試】

專案目錄結構圖: 說明:博主所有基於學習的內容全部基於上圖中的Spring-Boot框架,專案暫時不會上傳,因為還在完善,而且內容都比較離散,都是學習中遇到哪個知識點就往裡面加,因此,我只拆分

HTML ,CSS,JS 註釋的區別

<!-- -->是HTML的註釋標籤,使用 < 和 > 是符合HTML標籤語法規則的。 /* */是CSS的常用唯一註釋標籤 /* */(註釋程式碼塊)、//(註釋單行)是JS的註釋標籤。 幾種註釋有各自的使用環境,並且不能相互替

springmvc配置後jsp頁面不能載入css,js靜態檔案

記錄一下。 專案啟動後只能訪問jsp頁面,jsp引用的css,js都不能成功載入。瀏覽器控制檯提示404,jsp頁面引用的地址沒錯。所以不是路徑的問題。 需要更改spring-mvc.xml裡面的配

Spring MVC 深入及註解的詳細講解

 核心原理 1.       使用者傳送請求給伺服器。url:user.do 2.       伺服器收到請求。發現Dispatchservlet可以處理。於是呼叫DispatchServlet。 3.       DispatchServlet內部,通過HandleM

spring boot 學習筆記(003) 靜態資源(html/js檔案

用spring boot啟動的web站點,靜態資源放在工程的哪裡呢? html / js 等靜態資源。找了半天,說的高深的多,但是預設配置怎麼放,好辛苦。 找到了就不值一提了。 在工程下,直接建一個 "static"目錄。資源都放裡面。然後,就能訪問了。 用瀏覽器