1. 程式人生 > >request.getContextPath();及request.getScheme()+"://"+request.getServerName()+":"+request.getServerPo

request.getContextPath();及request.getScheme()+"://"+request.getServerName()+":"+request.getServerPo

JSP中語句<% String path = request.getContextPath(); String basePath...的含義

 

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

這個語句是用來拼接當前網頁的相對路徑的。

<base herf="...">從來表明當前頁面的相對路徑所使用的根路徑,也就是專案名稱

比如,頁面內部有一個連線,完整的路徑應該是 http://localhost:8085/Info_System/user/user_info.jsp
其中http://server/是伺服器的基本路徑,Info_System是當前應用程式的名字,那麼,我的根路徑應該是那麼http://localhost:80/Info_System/。

 

用這個base,伺服器就可以動態的將指定路徑和頁面的相對路徑拼裝起來,形成完整的路徑。

  1.request.getSchema();可以返回當前頁面所使用的協議,就是"http"

  2.request.getServerName();返回當前頁面所在伺服器的名字,就是上面例子中的"localhost"

  3.request.getServerPort();返回當前頁面所在伺服器的埠號,就是上面例子中的"8085"

  4.request.getContextPath();返回當前頁面所在的應用的名字,就是上面例子中的"Info_System"

當前頁面路徑是:http://localhost:80/Info_System/uploadAttachs/attachs_list.jsp

根據上面的介紹,那麼我在當前頁面中有跳轉為: <li><a href="<%=basePath%>user/user_info.jsp" class="information_off"></a></li>就應該這樣寫。