getRequestURI,getRequestURL的區別(轉)


test1.jsp=======================

<a href ="test.jsp?p=fuck">跳轉到test2</a>

test2.jsp=======================

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.println("basePath:"+basePath);
out.println("<br/>");
out.println("getContextPath:"+request.getContextPath());
out.println("<br/>");
out.println("getServletPath:"+request.getServletPath());
out.println("<br/>");
out.println("getRequestURI:"+request.getRequestURI());
out.println("<br/>");
out.println("getRequestURL:"+request.getRequestURL());
out.println("<br/>");
out.println("getRealPath:"+request.getRealPath("/"));
out.println("<br/>");
out.println("getServletContext().getRealPath:"+getServletContext().getRealPath("/"));
out.println("<br/>");
out.println("getQueryString:"+request.getQueryString());

%>

 

顯示結果:

basePath:http://localhost:8080/test/

getContextPath:/test 
getServletPath:/test.jsp 
getRequestURI:/test/test.jsp 
getRequestURL:http://localhost:8080/test/test.jsp 
getRealPath:D:\Tomcat 6.0\webapps\test\ 
getServletContext().getRealPath:D:\Tomcat 6.0\webapps\test\ 
getQueryString:p=fuck

在一些應用中,未登錄用戶請求了必須登錄的資源時,提示用戶登錄,此時要記住用戶訪問的當前頁面的URL,當他登錄成功后根據記住的URL跳回用戶最后訪問的頁面:

String lastAccessUrl = request.getRequestURL() + "?" + request.getQueryString();

 

 

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

 

 

 

輸出:

 

path:/E_WuLiu
basePath:http://localhost:8080/E_WuLiu/

 

getContextPath():得到當前應用的根目錄

 

getScheme():它返回當前請求所使用的協議。 一般的應用返回 "http",對於ssl則返回"https"

 

getServerName():獲取服務器名字,如果是在本地的話就是localhost

 

getServerPort():獲得服務器的端口號

 

 

 

 

 

另外:jsp中獲取客戶端的瀏覽器和操作系統信息

 

string agent = request.getheader("user-agent"); 
stringtokenizer st = new stringtokenizer(agent,";"); 
st.nexttoken(); 
//得到用戶的瀏覽器名 
string userbrowser = st.nexttoken(); 
//得到用戶的操作系統名 
string useros = st.nexttoken();

 

 

 

取得本機的信息也可以這樣:

 

 

 

操作系統信息 
system.getproperty("os.name"); //win2003竟然是win xp? 
system.getproperty("os.version"); 
system.getproperty("os.arch");

 


瀏覽器: 
request.getheader("user-agent")

 

 

 

其他 
request.getheader(“user-agent”)返回客戶端瀏覽器的版本號、類型

 

getheader(string name):獲得http協議定義的傳送文件頭信息,

 

request. getmethod():獲得客戶端向服務器端傳送數據的方法有get、post、put等類型

 

request. getrequesturi():獲得發出請求字符串的客戶端地址

 

request. getservletpath():獲得客戶端所請求的腳本文件的文件路徑

 

request. getservername():獲得服務器的名字

 

request.getserverport():獲得服務器的端口號

 

request.getremoteaddr():獲得客戶端的ip地址

 

request.getremotehost():獲得客戶端電腦的名字,若失敗,則返回客戶端電腦的ip地址

 

request.getprotocol():

 

request.getheadernames():返回所有request header的名字,結果集是一個enumeration(枚舉)類的實例

 

request.getheaders(string name):返回指定名字的request header的所有值,結果集是一個enumeration(枚舉)類的實例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM