JavaWeb 項目中各種路徑的問題和總結

1.關於包和轉發的路徑:

都是用的相對路徑。包和源碼的文件夾是以類路徑爲基準(無'/'),轉發和請求訪問路徑是以WebRoot下的路徑爲基準(有'/')

eg:   <mapper resource="sql-mapper/UserMapper.xml" />

        request.getDispatcher("/WEB-INF/jsps/hello.jsp").forward(request,response)  或者  @RequestMapping("/register.do")

 

2.在JSP頁面中引用css和js文件,以及表單提交後的action="" src=""等

  可以用相對路徑和絕對路徑,但是保險起見,個人習慣也是用的絕對路徑,不然文件夾或者資源更改位置後需要花精力去改動相對路徑。如果對相對路徑理解不到位,用絕對路徑的全路徑是最安全

絕對路徑:(全路徑)本站內:${pageContext.request.contextPath}/ +  WebRoot下的路徑   

                                    外部網站:  http://ip地址。。。(url)

                   (省略路徑,只適用於本站內)  "/" + WebRoot下的路徑

                       注意:省略路徑這種用法也會有人理解成是以WebRoot爲根的相對路徑,但於新手來說着實是誤導

相對路徑:  是相對於當前資源的位置。

                前面不可以加'/' ,例如:action="index.do"使用相對路徑的話前面是不能有斜槓的。或者你也可以嘗試使用"./index.do"

                如果要返回上一級路徑,則使用"../"

 

*****在請求中的相對路徑問題******

如果資源請求是從瀏覽器開始轉發,則相對路徑的根是:http地址欄的上一級。

如果是已經從瀏覽器轉發請求到A.jsp頁面,而A.jsp頁面中通過<frame/>或者<jsp:include/><jsp:forward/>再去請求其他資源,由於這屬於服務器行爲,相對路徑的根是:請求A.jsp頁面的url的上一級。

window.location.href屬於服務器行爲,不從地址欄判斷相對路徑,href則屬於瀏覽器行爲。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章