最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springmvc項目web.xml中servlet-mapping路徑映射配置注意說明

 更新時間:2023年12月26日 15:18:46   作者:huangyaa729  
這篇文章主要介紹了Springmvc項目web.xml中servlet-mapping路徑映射配置注意說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

今天準備在IDEA編輯器下創(chuàng)建個通過maven管理的springMVC工程來測試一些功能,按照記憶中的方式以及配合百度完成了工程的創(chuàng)建,但在訪問web.xml中配置的首頁時,無論如何都無法訪問,試了很多方式,但都不是很理想,無意間仔細看了下下的映射規(guī)則,再結(jié)合自己的嘗試,算是解決了心中的疑惑,也總結(jié)下自己的心得:

其他的配置暫且略去,主要關(guān)注屬性的配置;

最初的配置

  <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

可以正常訪問controller層的映射處理函數(shù),但是無法訪問web.xml中設(shè)置的首頁;

嘗試的方法

(1)因為無法找到首頁index.jsp

首先懷疑是路徑不對,改了各種位置,甚至重建了一遍工程還是不行,最后仔細分析報錯

如下:

 org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/spring] in
  DispatcherServlet with name 'dispatcher'

無法通過DispatcherServlet 找到合適的映射,因此懷疑把首頁的請求也當成映射來處理了,于是改成如下的匹配模式

精確匹配路徑:

   <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/test/*</url-pattern>
        </servlet-mapping>

雖然首頁能正常顯示了,但是controller層的映射卻匹配不到了,訪問路徑為:http://localhost:8080/spring/test/first

controller層的映射匹配模式如下:

@RequestMapping("/test/first")

報錯仍是找不到映射處理函數(shù),然后嘗試了很多次,發(fā)現(xiàn)采用精確匹配模式后,在dispatcher查找映射處理函數(shù)時,會把路徑中"test/“之前的部分去除,只匹配之后的路徑部分,改為如下模式即可匹配:

@RequestMapping(”/first")

(2)然后再次改變精確匹配模式

改為如下配置:

            <servlet-mapping>
                <servlet-name>dispatcher</servlet-name>
                <url-pattern>*.do</url-pattern>
            </servlet-mapping>

controller層的映射改為 @RequestMapping("/test/first.do"),這樣首頁和controller層都可以正常訪問了,當然原理與上一個方法一樣,改變DispatcherServlet匹配規(guī)則,讓首頁訪問不再經(jīng)過DispatcherServlet匹配,那么就能訪問到了;

(3)無意間參考了之前的一個工程配置

發(fā)現(xiàn)采用如下映射模式:

           <servlet-mapping>
                <servlet-name>dispatcher</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>

發(fā)現(xiàn)也解決了首頁和congtroller層的訪問問題,因此就搜了下"/“和”/*"區(qū)別:(具體原因可參照tomcat解析中的Catalina請求處理這一節(jié)所述)

1、<url-pattern>/ </ url-pattern >   不會匹配到*.jsp,由JspServlet(tomcat中默認的web.xml中配置的)攔截處理,即*.jsp不會進入spring的 DispatcherServlet類 。

2、在配置了< url-pattern > /* </ url-pattern >的情況下自然會攔截所有請求(包括/login,*.jsp,*.js和*.html等)

同時,對于首頁的匹配邏輯如下所述,完美解釋了上述報錯的原因:

  • 如果配置了servlet的url-pattern是/*,那么訪問localhost:8080/會匹配到該servlet上,而不會匹配welcome-file-list;
  • 如果url-pattern是/(該servlet即為默認servlet),訪問localhost:8080/時,如果其他匹配模式都沒有匹配到,則會匹配welcome-file-list(只針對這個啟動時默認訪問請求有效)。

另外,“/”其實能攔截“.js”,“.css”,".png"等靜態(tài)資源的訪問,因此如果采用“/”的配置時,需要在主配置文件中配置放行靜態(tài)資源(即DispatcherServlet對應的配置文件),這樣才不會出現(xiàn)意想不到的匹配錯誤404.

<mvc:resources location="/WEB-INF/js/" mapping="/js/**"/> 
<mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>
<mvc:resources location="/WEB-INF/images/" mapping="/images/**"/>

總結(jié)

如上就是我針對此次創(chuàng)建工程的問題的總結(jié),有不妥的地方還望指出。

這些僅為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ReentrantReadWriteLock不能鎖升級的原因總結(jié)

    ReentrantReadWriteLock不能鎖升級的原因總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java并發(fā)的相關(guān)知識,文章圍繞著為什么ReentrantReadWriteLock不能鎖升級展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot集成JPA的示例代碼

    SpringBoot集成JPA的示例代碼

    本篇文章主要介紹了SpringBoot集成JPA的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • tomcat請求流程源碼解進階篇

    tomcat請求流程源碼解進階篇

    這篇文章主要為大家介紹了tomcat請求流程源碼解進階,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 據(jù)說這個是可以擼到2089年的idea2020.2(推薦)

    據(jù)說這個是可以擼到2089年的idea2020.2(推薦)

    這篇文章主要介紹了據(jù)說這個是可以擼到2089年的idea2020.2,本教程給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 基于Java中字符串內(nèi)存位置詳解

    基于Java中字符串內(nèi)存位置詳解

    下面小編就為大家?guī)硪黄贘ava中字符串內(nèi)存位置詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Java實現(xiàn)簡易拼圖游戲的方法詳解

    Java實現(xiàn)簡易拼圖游戲的方法詳解

    這篇文章主要介紹了如何利用Java語言實現(xiàn)簡易拼圖游戲,幫助大家更好的理解和使用Java開發(fā)游戲,感興趣的朋友可以跟隨小編一起學習一下
    2022-05-05
  • Maven打包jar包沒有主屬性問題解決方案

    Maven打包jar包沒有主屬性問題解決方案

    這篇文章主要介紹了Maven打包jar包沒有主屬性問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Spring中TransactionSynchronizationManager的使用詳解

    Spring中TransactionSynchronizationManager的使用詳解

    這篇文章主要介紹了Spring中TransactionSynchronizationManager的使用詳解,TransactionSynchronizationManager是事務(wù)同步管理器,監(jiān)聽事務(wù)的操作,來實現(xiàn)在事務(wù)前后可以添加一些指定操作,需要的朋友可以參考下
    2023-09-09
  • 手把手教你SpringBoot過濾器N種注冊方式

    手把手教你SpringBoot過濾器N種注冊方式

    這篇文章主要介紹了手把手教你SpringBoot過濾器N種注冊方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Spring MVC項目中l(wèi)og4J和AOP使用詳解

    Spring MVC項目中l(wèi)og4J和AOP使用詳解

    項目日志記錄是項目開發(fā)、運營必不可少的內(nèi)容,有了它可以對系統(tǒng)有整體的把控,出現(xiàn)任何問題都有蹤跡可尋。下面這篇文章主要給大家介紹了關(guān)于Spring MVC項目中l(wèi)og4J和AOP使用的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12

最新評論

彩票| 潢川县| 苍山县| 禄丰县| 万载县| 毕节市| 灌云县| 聂荣县| 福泉市| 平遥县| 莱阳市| 合阳县| 武清区| 高邮市| 绥阳县| 宜川县| 门源| 舟山市| 安陆市| 定兴县| 建湖县| 灵宝市| 双柏县| 丘北县| 布尔津县| 宜兴市| 宜丰县| 怀宁县| 镶黄旗| 阳泉市| 寿阳县| 高雄县| 西宁市| 偏关县| 新郑市| 夏河县| 右玉县| 平安县| 奉节县| 福鼎市| 绥阳县|