1. 程式人生 > >JavaWeb 專案中各種路徑的問題和總結

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則屬於瀏覽器行為。