天天看點

web項目中的路徑問題1. web項目中的路徑問題

1. web項目中的路徑問題

1)URL

1.統一資源定位符:用于唯一定位網際網路上的一個資源

2.格式:協定://域名(ip):端口号/項目路徑/資源路徑

  • 1.http://localhost:8080/Servlet09 /admin/listEmp
  • 2.https://www.baidu.com
    web項目中的路徑問題1. web項目中的路徑問題

2)路徑的2種寫法

1.相對路徑

  • 1.從目前檔案到目标檔案的路徑稱為相對路徑
  • 2.目前檔案位置不同,相對路徑也不同
  • 3.相對路徑的寫法:“css/style.css”, “…/css/style.css 或 …/…/css/style.css” (不以 “/” 開頭)
  • 4.相對路徑不能 拿來直接通路網際網路上的資源,必須由浏覽器拼接成完整的url ,才能通路網際網路上的資源
    web項目中的路徑問題1. web項目中的路徑問題
  • 5.可以在html頁面中添加一個

    <base href="路徑" target="_blank" rel="external nofollow" >

    ,為目前頁面指定一個父路徑,供拼接路徑使用
    web項目中的路徑問題1. web項目中的路徑問題
    以上拼接完成後,會多一個admin
  • 6.相對路徑表示
    web項目中的路徑問題1. web項目中的路徑問題

2.絕對路徑

  • 1.從一個固定位置到目标檔案的路徑稱為絕對路徑,一般是項目的根目錄
  • 2.目前檔案位置對絕對路徑沒有影響
  • 3.絕對路徑要以“/”開頭 ,或者 "http://…"
  • 4.可以利用html提供的base标簽解決這一問題。以下操作在

    <head>

    标簽中實作
<!-- 靜态設定 -->
<!-- 在head标簽中,設定<base>,指定目前頁面的父路徑。例如: -->
<base href="http://localhost:8080/Servlet09/">


<!-- 一般用動态生成 -->
<%String path=request.getContextPath();
//動态生成basePath,後期路徑變化,代碼不用修改
String bsePath=request.getScheme()+"://"
               +request.getServerName()+":"
                +request.getServerPort( )+path+"/";
%>
<!-- 用于指定目前頁面的父路徑,供拼接路徑使用 -->
<!-- 格式href="協定://域名:端口号/項目路徑/" -->
<base href="<%=basePath %>">
           
web項目中的路徑問題1. web項目中的路徑問題

3)html中出現的路徑:

  • 1.

    <a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >

  • 2.

    <img src="">

  • 3.

    <form action="">

  • 3.

    <script src="">

  • 4.

    <link href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >

3.Servlet中的路徑:

  • 1.請求轉發:路徑中不應該包含項目映射的路徑
    • 1.請求轉發login.jsp
      • 1.request.getRequestDispatcher("/login.jsp");
  • 2.請求重定向:路徑中需要包含目前項目映射的路怪
    • 1.重定向到login.jsp
      • 1.response.sendRedirect("/Servlete09/login.jsp");
  • 3.如何記憶:
    • 1.請求轉發的目标有限制:隻能是目前項目内部的資源
    • 2.請求重定向的目标沒有限制,是以必須添加項目路徑來限定