① Java web項目訪問路徑問題。求解啊!
images的url寫成src="${pageContext.request.contextPath}/images/logo.jpg"
一般會把${pageContext.request.contextPath}這部分提取出來,在jsp寫成:
<% String path = request.getContextPath();%>
如圖:
則images路徑可以寫成src="<%=path%>/images/logo.jpg"
訪問login.jsp頁面的話,寫成http://ip:埠號/CityInfo/pages/login.jsp
② web中的路徑與跳轉
絕對路徑:
絕對路徑就是文件或目錄在硬碟上真正的路徑,例如: C:xyz est.txt 代表了test.txt文件的絕對路徑。還有 http://localhost/learnjsp/login.jsp 也是絕對路徑。
相對路徑:
相對與某個基準目錄而言的路徑。
其一,在jsp和servlet中, / 代表web應用的根目錄(以web應用為基準),如 /login.jsp 代表 localhost:8080/myBlog/login.jsp 。
其二,在html中, / 代表伺服器的根目錄(以web伺服器為基準), /login.jsp 代表 localhost:8080/login.jsp 。
其三,參照物理路徑的相對表示。例如: ./ 代表當前目錄, ../ 代表上級目錄。這種類似的表示,也是屬於相對路徑。
在jsp中,因為其包裹了html,大多數情況下我們是要寫html裡面的路徑。 使用相對路徑,因為沒有意義也無法取得絕對路徑 。
使用表單時,要提交給 servlet 進行處理,使用相對路徑:
這里的 <%=request.getContextPath()%> 的值為: /webapp 。
一般情況下,在JSP/HTML頁面等引用的CSS,Javascript.Action等屬性前面最好都加上 <%=request.getContextPath()%> ,以確保所引用的文件都屬於Web應用中的目錄。
無論是表單的 form 還是css、js的引入路徑,都應該盡量 避免使用 類似 . 、 ./ 、 ../../ 等類似的相對該文件位置的相對路徑,否則當文件移動時,很容易出問題。
在servlet中,我們經常要將請求轉發或者重定向到另一個地方。我們 只能使用相對路徑 。
使用 request.getRequestDispatcher(address) 進行請求轉發,或者是 sendRedirect:response.sendRedirect(address) 進行重定向。
注意: 在這里,請求轉發是相對於伺服器而言,因此其 / 代表了 /webapp ;而重定向是相對於客戶端而言,因此其 / 代表了 localhost 。
使用 getRealPath() 來獲取完整的物理路徑, 主要是在 servlet 中經常需要使用 。
下面的3個例子,是在jsp頁面中使用舉例。
這里, / 代表了web應用的根目錄 。
當path為 / 時,代表的是web應用;當path為 /toPost/post.jsp 時,代表的web應用下的某一個文件;當path為 request.getRequestURI() 時,代表發出請求的jsp文件。
1、jsp頁面使用,一般使用不到(沒有意義)
2、servlet中使用
③ 追蹤從PC-A到Web伺服器的路徑
將test.txt替換成對應成相應的類名和文件名。
java項目中的文件是相對於項目的根目錄,web項目中的文件路徑視不同的web伺服器不同而不同(tomcat是相對於tomcat安裝目錄in)。
二類載入目錄的獲得(即當運行時某一類時獲得其裝載目錄)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)(test.txt文件的路徑為項目名src est.txt;類TestAction所在包的第一級目錄位於src目錄下)上式中將TestAction,test.txt替換成對應成相應的類名和文件名字即可。
④ 如何獲取web應用的部署路徑
在java中獲得文件的路徑在我們做上傳文件操作時是不可避免的。
web 上運行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能運行
3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 項目的絕對路徑。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
在本地運行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能運行
2:this.getClass().getResource("").getPath();
this.getClass().getResource(".").getPath(); 得到的是當前類 文件的URI目錄。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的絕對URI路徑。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的絕對URI路徑。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能運行
最後
在Web應用程序中,我們一般通過ServletContext.getRealPath("/")方法得到Web應用程序的根目錄的絕對路徑。
還有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic伺服器,項目內部並沒有文件結構的概念,用這種方式是始終得到null,獲取不到路徑,目前還沒有找到具體的解決方案。
⑤ 怎麼用eclipse修改web工程的訪問路徑
1、首先在電腦上打開eclipse,找到自己要修改的項目,滑鼠右鍵點擊。
⑥ web訪問路徑是網頁路徑嗎(新手小白!)
1、訪問到的可能是虛擬路徑(非真實路徑、映射路徑)
2、訪問到可能就是真實路徑(物理路徑)、整體上最終訪問到的還是真實路徑。
⑦ JAVA Web獲取路徑幾種方式
1、獲取項目根路徑
req.getSession().getServletContext().getRealPath("/");
2、獲取類路徑
this.getClass().getResource("/").getPath();
⑧ web防火牆有什麼作用
1.包過濾
具備包過濾的就是防火牆?對,沒錯!根據對防火牆的定義,凡是能有效阻止網路非法連接的方式,都算防火牆。早期的防火牆一般就是利用設置的條件,監測通過的包的特徵來決定放行或者阻止的,包過濾是很重要的一種特性。雖然防火牆技術發展到現在有了很多新的理念提出,但是包過濾依然是非常重要的一環,如同四層交換機首要的仍是要具備包的快速轉發這樣一個交換機的基本功能一樣。通過包過濾,防火牆可以實現阻擋攻擊,禁止外部/內部訪問某些站點,限制每個ip的流量和連接數。
2.包的透明轉發
事實上,由於防火牆一般架設在提供某些服務的伺服器前。如果用示意圖來表示就是 Server—FireWall—Guest 。用戶對伺服器的訪問的請求與伺服器反饋給用戶的信息,都需要經過防火牆的轉發,因此,很多防火牆具備網關的能力。
3.阻擋外部攻擊
如果用戶發送的信息是防火牆設置所不允許的,防火牆會立即將其阻斷,避免其進入防火牆之後的伺服器中。
4.記錄攻擊
如果有必要,其實防火牆是完全可以將攻擊行為都記錄下來的,但是由於出於效率上的考慮,目前一般記錄攻擊的事情都交給IDS來完成了,我們在後面會提到。
以上是所有防火牆都具備的基本特性,雖然很簡單,但防火牆技術就是在此基礎上逐步發展起來的。