從request擷取各種路徑總結 request.getRealPath("url")

來源:互聯網
上載者:User

標籤:ica   request   san   pps   server   連接埠   request對象   tco   name   

轉載:http://blog.csdn.net/piaoxuan1987/article/details/8541839

equest.getRealPath() 這個方法已經不推薦使用了,代替方法是:

request.getSession().getServletContext().getRealPath()

 

 

從Request對象中可以擷取各種路徑資訊,以下例子:  假設請求的頁面是index.jsp,項目是WebDemo,則在index.jsp中擷取有關request對象的各種路徑資訊如下  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  String remoteAddress=request.getRemoteAddr();  String servletPath=request.getServletPath();  String realPath=request.getRealPath("/");  String remoteUser=request.getRemoteUser();  String requestURI=request.getRequestURI();  out.println("path:"+path+"<br>");  out.println("basePath:"+basePath+"<br>");  out.println("remoteAddr:"+remoteAddress+"<br>");  out.println("servletPath:"+servletPath+"<br>");  out.println("realPath:"+realPath+"<br>");  out.println("remoteUser:"+remoteUser+"<br>");  out.println("requestURI:"+requestURI+"<br>");  結果:  path:/WebDemo  basePath:http://localhost:8683/WebDemo/  remoteAddr:127.0.0.1  servletPath:/index.jsp  realPath:D:\apache-tomcat-6.0.13\webapps\WebDemo\  remoteUser:null  requestURI:/WebDemo/index.jsp  從上不難看出request各個對應方法所代表的含義 

參考servlet中的介面:

request.getScheme();
返回的協議名稱,預設是http

request.getServerName()
返回的是你瀏覽器中顯示的主機名稱,你自己試一下就知道了

getServerPort()
擷取伺服器連接埠號碼

 

 

 

在servlet裡用this.getServletContect().getRealPath()

在struts裡用this.getServlet().getServletContext().getRealPath()

在Action裡用ServletActionContext.getRequest().getRealPath();

 

以上三個獲得都是當前運行檔案在伺服器上的絕對路徑




從request擷取各種路徑總結 
request.getRealPath("url"); // 虛擬目錄映射為實際目錄 


request.getRealPath("./");    // 網頁所在的目錄 

request.getRealPath("../"); // 網頁所在目錄的上一層目錄 

request.getContextPath();    // 應用的web目錄的名稱 


如http://localhost:7001/bookStore/ 
/bookStore/ => [contextPath] (request.getContextPath()) 

擷取Web項目的全路徑 
String strDirPath = request.getSession().getServletContext().getRealPath("/"); 

以工程名為TEST為例: 

(1)得到包含工程名的當前頁面全路徑:request.getRequestURI() 
結果:/TEST/test.jsp 


(2)得到工程名:request.getContextPath() 
結果:/TEST 


(3)得到當前頁面所在目錄下全名稱:request.getServletPath() 
結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp 


(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp") 
結果:D:\resin\webapps\TEST\test.jsp 


(5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 
結果:D:\resin\webapps\TEST 

2.在類中取得路徑: 

(1)類的絕對路徑:Class.class.getClass().getResource("/").getPath() 
結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ 


(2)得到工程的路徑:System.getProperty("user.dir") 
結果:D:\TEST 

3.在Servlet中取得路徑: 

(1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數可具體到包名。 
結果:E:\Tomcat\webapps\TEST 


(2)得到IE地址欄地址:request.getRequestURL() 
結果:http://localhost:8080/TEST/test 


(3)得到相對位址:request.getRequestURI() 
結果:/TEST/test

從request擷取各種路徑總結 request.getRealPath("url")

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.