SpringMVC_url-pattern的寫法


# 1 設置為 .do

一種較為常見的寫法

<servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
# 2 設置為 /*

當url-pattern設置為 /* 時,表示匹配所有的請求,當設置為改方法后,會匹配 *.jsp ,會出現返回jsp視圖時再次進入spring的 DispatcherServlet類中,導致找不到相應得Controller而出現錯誤 404報錯

# 3 設置為 /

當url-pattern設置為 / 后,如果當前的請求在web.xml中無法找到匹配的url,系統會將請求交給DispatcherServlet處理,靜態資源:css,js文件,圖片文件,也會被攔截並交給DispatcherServlet處理

但當url-pattern設置為 / 后,不會攔截 *.jsp 和 *.jspx文件,因為在當前的tomcat中的 conf/web,xml文件中已經添加了相應的處理 *.jsp,*.jspx文件方式,系統會將該類型的文件交給 org.apache.jasper.servlet.JspServlet 來及進行處理,故我們可以進行訪問該類型的文件

    <!-- The mapping for the default servlet -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- The mappings for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>

# 如何解決靜態資源無法訪問的情況

(靜態資源:css,js文件,圖片文件,也會被攔截並交給DispatcherServlet處理)

1:使用 defaultServlet

當系統找不到處理某個url請求時,就將請求交給DefaultServlet來處理,將下方的類中添加與tomcat的conf/web.xml文件中(注意:添加在 DefaultServlet前面,這樣系統就會將帶有下面后綴的請求交給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>

2:在springmvc的配置文件 springmvc.xml文件中配置

(改方法會將所有的請求進行處理,然后交給相應的servlet處理,這種方式最終由DefaultServlet進行處理)

<mvc:default-servlet-handler/> 

 3:使用mv:resources

(SpringMvc 提供 mv:resources 標簽來解決靜態資源無法訪問的問題,會將靜態資源交給 ResourceHttpRequestHandler 來處理)

<mvc:resources mapping="/images/**" location="/images/" />
<!-- mapping為對該資源的請求 -->
<!-- location 表示靜態資源所在的目錄 -->

本筆記參考自:小猴子老師教程 http://www.monkey1024.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM