1. 程式人生 > >getRequestURI,getRequestURL的區別

getRequestURI,getRequestURL的區別

根據 url 顯示 pos 當前頁 tac 名稱 acc web app

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的區別