1. 程式人生 > >JavaWeb(三)-關於web專案中的路徑問題及URL編碼問題

JavaWeb(三)-關於web專案中的路徑問題及URL編碼問題

一、web專案中的路徑問題

1-1獲得資源路徑

1-1-1class類獲得資源

InputStream in= this.getClass().getResourceAsStream("...");

class類中的ResourceAsStream;

                               以“/”開頭,相對於classes路徑

                               不以“/”開頭,則相對於當前的class檔案所在的路徑

1-1-2 ClassLoader獲得資源

InputStream in= this.getClass().getClassLoader().getResourceAsStream("...");

classLoader類是相當於當前的classes路徑

1-1-3 ServletContext獲得資源

  1. 使用ServletContext的getResourceAsStream方法:返回資原始檔的讀取位元組流。
  2. 使用ServletContext的getRealPath方法,獲得檔案的完整絕對路徑path(除了可以獲取資料,還可以獲取資原始檔的名稱)

1-2:web.xml下的<url-pattern>路徑

  1.    以 *   開頭 用於過濾器
  2.    以 / 開頭 當前專案路徑 開始 (http://localhost:8080/專案名/)

 1-3:轉發/包含路徑(伺服器<--->伺服器)

  1. 以 /  開頭,則相當於當前專案路徑 (http://localhost:8080/專案名/)
  2. 不以  /   開頭,則相當於當前Servlet路徑  (http://localhost:8080/專案名/Aservlet/)

1-4:重定向路徑(客戶端路徑)

只能以/ 開頭,相當於當前主機。  (http://localhost:8080/)

resp.sendRedirect(req.getContextPath()+"/EServlet");

1-5:頁面中的超連結

  1. 以/ 開頭,相當於當前主機。  (http://localhost:8080/)
  2. 不以 /開頭,則相當於當前頁面的所在路徑

 

二、URL編碼問題

由於表單型別是content-Type:application/x-www-form-urlencoded。可以直接把中文進行URL編碼(%+兩位16進位制);

然而GET中,的中文無法直接進行URL編碼

方法

java中URL 的編碼和解碼函式
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);

String u=URLEncoder.encode("好的","UTF-8");
		String uu=URLDecoder.decode(u,"UTF-8");