<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          URL中的訪問路徑如何設(shè)置?

          共 2031字,需瀏覽 5分鐘

           ·

          2020-08-29 02:37


          訪問路徑與資源名稱


          通常的URL資源路徑由兩部分構(gòu)成:訪問路徑與資源名稱. 資源名稱指的是要訪問資源的直接名稱, 如show.jsp, 或與要訪問資源存在映射關(guān)系的間接名稱, 如show.do. 而訪問路徑, 則是通過該路徑可以定位到指定的資源, 即在URL資源訪問路徑中除了資源名稱以外的其他部分. 一般情況下, 在URL訪問路徑中, 最后一部分為資源名稱, 而其他部分則為訪問路徑.


          如下面的URL:


          http://localhost:8080/ssm/show.do

          其中 http://localhost:8080/ssm 為訪問路徑, show.do為資源名稱.


          <body>
          ????<a?href="xxx/ooo/show.do">跳轉(zhuǎn)到show頁面a>
          body>


          其中 xxx/ooo/ 為訪問路徑, show.do為資源名稱.


          根據(jù)"訪問路徑是否可以獨立完成資源準(zhǔn)確定位"的判別標(biāo)準(zhǔn), 可以將訪問路徑分為絕對路徑與相對路徑.


          絕對路徑


          絕對路徑, 是指根據(jù)給出的訪問路徑可以準(zhǔn)確定位到資源的路徑. Web應(yīng)用的絕對路徑是指帶訪問協(xié)議的路徑, 如:


          http://localhost:8080/ssm/show.do


          相對路徑


          相對路徑是指根據(jù)訪問路徑無法準(zhǔn)確定位到資源的路徑. 因為只有絕對路徑才能定位到資源, 所以當(dāng)資源的路徑是相對路徑時, 我們的首要任務(wù)是找到參照路徑, 然后將參照路徑和相對路徑拼接成絕對路徑.


          在Web應(yīng)用中, 相對路徑的寫法有兩種: 以斜桿開頭的相對路徑和不以斜桿開頭的相對路徑.


          以斜桿開頭的相對路徑


          以斜桿開頭的相對路徑, 根據(jù)路徑所在文件所處位置的不同, 又分為前端路徑和后端路徑.


          (1) 前端路徑


          前端路徑是指由瀏覽器解析執(zhí)行的代碼中所包含的路徑, 如html, css, js, 及jsp中的靜態(tài)路徑. 前端路徑的參照路徑是Web服務(wù)器的根路徑, 即 http://localhost:8080/


          (2) 后端路徑


          后端路徑是指由服務(wù)器解析執(zhí)行的代碼及文件中所包含的路徑, 如Java代碼中的路徑, jsp中的動態(tài)路徑(Java代碼塊中的路徑), xml文件中的路徑等. 后端路徑的參照路徑是Web應(yīng)用的根路徑, 即: http://localhost:8080/ssm/


          注意, response.sendRedirect("") 中的路徑為前端路徑, 因為重定向是把URL發(fā)送給客戶端, 客戶端再次向服務(wù)器發(fā)送請求. 所以在后臺代碼中要重定向到show.jsp頁面時, 代碼如下:


          response.sendRedirect("show.jsp");
          response.sendRedirect(request.getContextPath + "/show.jsp");


          不以斜桿開頭的相對路徑


          不以斜桿開頭的相對路徑, 無論是前端路徑還是后端路徑, 其參照路徑都是當(dāng)前資源的訪問路徑, 而不是當(dāng)前資源的保存路徑.


          路徑常見問題


          (1) 為什么頁面超鏈接的href屬性值加上斜桿會報錯?


          <body>
          ????<a?href="/show.do">跳轉(zhuǎn)到show頁面a>
          body>

          因為超鏈接上的路徑為前端路徑, 其參照路徑為 http://localhost:8080/ ,拼接為絕對路徑后為 http://localhost:8080/show.do , 但該資源真正的絕對路徑為 http://localhost:8080/ssm/show.do , 解決辦法如下:


          <body>
          ????<a?href="${pageContext.request.contextPath}/show.do">跳轉(zhuǎn)到show頁面a>
          body>


          (2)為什么點擊超鏈接跳轉(zhuǎn)到自身后再點擊會報錯?


          Controller代碼


          @RequestMapping("/test/show.do")
          public?ModelAndView doShow()?{
          ????return?new?ModelAndView("/index.jsp");
          }


          index頁面


          <body>
          ??<a?href="test/show.do">跳轉(zhuǎn)a>
          body>

          index頁面的路徑為 http://localhost:8080/ssm/index.jsp , 當(dāng)點擊第一次時絕對路徑為 http://localhost:8080/ssm/test/show.do , 點擊第二次時絕對路徑為 http://localhost:8080/ssm/test/test/show.do , 解決辦法如下:


          <body>
          ????<a?href="${pageContext.request.contextPath}/show.do">跳轉(zhuǎn)a>
          body>


          或者


          <%
          ????String?path = request.getContextPath();
          ????String?bathPath = request.getScheme() + "://"?+ request.getServerName() + ":"?+ request.getServerPort() + path + "/";
          %>
          <html>
          <head>
          ????<base?href="<%=bathPath%>">
          head>
          <body>
          ??<a?href="test/show.do">跳轉(zhuǎn)a>
          body>
          html>


          頁面中的< base>標(biāo)簽, 會在當(dāng)前頁面的所有資源請求路徑前加上< base>標(biāo)簽內(nèi)的路徑, 將相對路徑變成絕對路徑. 該方式實際上是修改了不帶斜桿的相對路徑的參照路徑, 將其修改為了basePath, 所以這種方式要求頁面中的請求不能以斜桿開頭.


          原文鏈接:blog.csdn.net/litianxiang_kaola/article/details/86485484



          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产综合福利在线 | 午夜影院一区 | 中文字幕二级无码电影 | 美欧毛片 | 一级黄色成人影片 |