SpringMVC請求路徑問題及解決(路徑前面加不加/的問題)
一、請求路徑
一個正確的請求路徑應(yīng)該是由資源路徑+資源名稱組成
http://localhost:8080/sk_war_exploded/login.do為絕對路徑
http://localhost:8080/sk_war_exploded為資源路徑
login.do為資源名稱
相對路徑:
/login.do就是一個相對路徑,相對路徑會依賴于一個其他路徑作為參照路徑,與這個參照路徑組合去定位一個資源,絕對路徑 =參照路徑+相對路徑
二、相對路徑前是否加上斜杠(/),會產(chǎn)生不同的效果
2.1、路徑解析在前臺
根路徑為http://localhost:8080/ (服務(wù)器的根路徑)
1、開頭不帶斜杠的相對路徑
<a href="login.do" rel="external nofollow" th:if="${userInformation.username}==null" id="user_name_a" th:value="wsk">登錄</a> 相對路徑不帶斜杠時,這個路徑為當(dāng)前資源路徑的一個子路徑
此時的訪問地址即:
http://localhost:8080/sk_war_exploded/login.do,此時可以正確訪問
2、開頭帶斜杠的相對路徑
<a href="/login.do" rel="external nofollow" th:if="${userInformation.username}==null">注冊</a>
相對路徑帶斜杠時,這個路徑表示該路徑為根路徑的一個子路徑
此時的訪問地址即:
http://localhost:8080/login.do解析地址失敗
2.2、路徑解析在后臺
根路徑為http://localhost:8080/sk_war_exploded/
1、開頭不帶斜杠的相對路徑
//@RequestMapping帶上/是絕對路徑,加斜杠就是找跟路徑下的,不帶是相對(規(guī)范應(yīng)該帶)
@RequestMapping(value = "login.do", method = RequestMethod.GET)
public String login(HttpServletRequest request, Model model) {
}
相對路徑不帶斜杠時,這個表示該路徑為當(dāng)前資源路徑的一個子路徑
此時的訪問地址即:
http://localhost:8080/sk_war_exploded/login.do,此時可以正確訪問
2、開頭帶斜杠的相對路徑
//@RequestMapping帶上/是絕對路徑,加斜杠就是找跟路徑下的,不帶是相對(規(guī)范應(yīng)該帶)
@RequestMapping(value = "/login.do", method = RequestMethod.GET)
public String login(HttpServletRequest request, Model model) {
}相對路徑帶斜杠時,開頭路徑表示該路徑為根路徑的一個子路徑
此時的訪問地址即:
http://localhost:8080/sk_war_exploded/login.do,此時可以正確訪問
原因:
由于后臺解析路徑的時候,根路徑為http://localhost:8080/sk_war_exploded/,
1、當(dāng)我們不加斜杠的時候,就是以相對路徑解析,但是因為我們的根路徑就是http://localhost:8080/sk_war_exploded/,最終定位還是回到http://localhost:8080/sk_war_exploded/login.do,
2、加斜杠時,以絕對路徑進(jìn)行解析,但是由于根路徑和當(dāng)前資源路徑都定位到http://localhost:8080/sk_war_exploded/,所以最終定位還是回到http://localhost:8080/sk_war_exploded/login.do,但是,規(guī)范規(guī)定應(yīng)該加斜杠(/)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot定時任務(wù)參數(shù)運行代碼實例解析
這篇文章主要介紹了SpringBoot定時任務(wù)運行代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06
Java使用EasyExcel實現(xiàn)高效的Excel讀寫操作
在日常開發(fā)中,Excel 文件的讀寫操作是一個常見的需求,EasyExcel 是阿里巴巴開源的一個高性能、易用的 Excel 讀寫庫,可以大幅提高處理 Excel 文件的效率,本篇博客將從 EasyExcel 的基本概念、優(yōu)勢、安裝、讀寫操作以及高級用法展開,需要的朋友可以參考下2024-12-12
Spring中FactoryBean的高級用法實戰(zhàn)教程
FactoryBean是Spring框架的高級特性,允許自定義對象的創(chuàng)建過程,適用于復(fù)雜初始化邏輯,本文給大家介紹Spring中FactoryBean的高級用法實戰(zhàn),感興趣的朋友跟隨小編一起看看吧2024-09-09

