項目需求:全部jsp頁必須經過Action轉發,不能直接在地址欄連接jsp或<a href="aaa.jsp"></a>html
個人應用以下:java
1.LoginFilterweb
2.web.xml瀏覽器
2、網上其餘資料服務器
<%=request.getContextPath()%>是解決相對路徑的問題,可返回站點的根路徑。
<a href="<%=request.getContextPath()%>/XXX.jsp"> //這樣得到的是絕對路徑app
<a href="XXX.jsp"> //這樣得到的是相對路徑jsp
<a href="<%=request.getContextPath()%>/XXXX.jsp"> 可以更有效的防治鏈接的失效。url
request.getContextPath()獲得的是項目的名字,若是項目爲根目錄,則獲得一個"",即空的字條串,
若是項目爲dzjc, <%=request.getContextPath()% >/ 將獲得dzjc/,服務器端的路徑則會自動加上,
<a href="XXX.jsp"> 應該就是指當前路徑下的這個xxx.jsp頁面,有時候也能夠在head裏設置html:base
來解決路徑的問題,不過用的最多的仍是request.getContextPath。spa
用EL來表示相同功能的EL爲:${pageContext.request.getContextPath()}orm
request.getScheme();
返回的協議名稱,默認是http
request.getServerName()
返回的是你瀏覽器中顯示的主機名
getServerPort()
獲取服務器端口號
若是想獲得工程文件的實際物理路徑,可經過:<%=request.getRealPath("/")%>,這樣頁面就會輸出:d:/web
如今request.getRealPath("") 這個方法已經不推薦使用了
可使用
ServletContext.getRealPath(java.lang.String) instead. request.getSession().getServletContext().getRealPath() 獲得工程文件的實際物理路徑,也就是絕對地址
簡便用法:
String path=request.getContextPath();//path = /oa
request.setAttribute("path", path);
在頁面中應用(EL) ${path}/images/xx.jpg(絕對定位:oa/images/xx.jpg)
能夠解決複雜的相對路徑定位失敗的問題。