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(枚舉)類的實例