1. 程式人生 > >絕對路徑與相對路徑問題

絕對路徑與相對路徑問題

let contex red jsp tex 文件夾 cti res div

一、現象與概念

1. 問題

在Servlet轉發到JSP頁面時,此時瀏覽器地址欄上顯示的是Servlet的路徑,而若JSP頁面的超鏈接還是相對於該JSP頁面的地址且該Servlet和該JSP頁面不在同一個文件夾下時,則會出現路徑混亂問題。

2. 絕對路徑概念

相對於contextPath(當前Web應用的上下文)的路徑。

解決方案:超鏈接用絕對路徑而不是相對路徑。若/代表的是站點的根目錄,在其前面加上contextPath。

<a href="<%= request.getContextPath() %>/TestServlet">To B</a>

二、JavaWeb開發中的‘/‘含義總結

1. 當前Web應用的根路徑

‘/‘代表http://localhost:8080/contextPath/ :由Servlet來處理的地址

1)轉發:request.getRequestDispatcher("/path/b.jsp").forword(request, response);

2)web.xml文件中映射Servlet訪問路徑

<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/TestServlet</url-pattern>
</servlet-mapping>

3)各種定制標簽中的‘/‘。

2. Web站點的根路徑

‘/‘代表http://localhost:8080/ :由瀏覽器來處理的地址

1)超鏈接:<a href="/TestServlet">To B</a>

2)form標簽中的action:<form action="/b.jsp">

3)重定向:response.sendRedirect("/b.jsp");

絕對路徑與相對路徑問題