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();
假定你的web application 名稱為news,你在瀏覽器中輸入請求路徑:
http://localhost:8080/news/main/list.jsp
則執行下面向行代碼後打印出如下結果:
1、 System.out.println(request.getContextPath());
打印結果:/news
2、System.out.println(request.getServletPath());
打印結果:/main/list.JSP
3、 System.out.println(request.getRequestURI());
打印結果:/news/main/list.JSp
4、 System.out.println(request.getRealPath("/"));
打印結果:F:\tomcat 6.0\webapps\news\test
getRequestURI,getRequestURL的區別