`

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(枚举)类的实例

分享到:
评论

相关推荐

    HttpServletRequest 中 getRequestURL和getRequestURI的区别

    本文将深入探讨 `HttpServletRequest` 中的 `getRequestURL()` 和 `getRequestURI()` 方法的区别。 首先,我们来看 `getRequestURI()` 方法。`getRequestURI()` 返回的是客户端发送请求时的完整统一资源标识符(URI...

    WEB15-request.rar

    String getRequestURI() StringBuffer getRequestURL() String getContextPath() ---web应用的名称 String getQueryString() ---- get提交url地址后的参数字符串 username=zhangsan&password=123 注意:request...

    从HttpServletRequest获取各种路径总结

    - **获取客户端地址栏地址**:`request.getRequestURL()` - **获取相对地址**:`request.getRequestURI()` #### 五、总结 通过上述介绍可以看出,在Java Web开发中,合理地利用`HttpServletRequest`对象提供的方法...

    JAVA类,JSP,Servlet获取工程路径.txt

    2. **利用`request.getRequestURL()`获取完整的URL:** - 示例:如果请求URL为`http://localhost:8080/TEST/test`,则调用此方法返回的完整URL为`http://localhost:8080/TEST/test`。 3. **利用`request....

    HttpServletRequest-response方法总结

    8. getRequestURI():取得请求URI(统一资源标识符)。 9. getSession():取得对应的session。 10. getHeaderNames():返回请求包含的所有头名称的一个Enumeration(遍历器)。 HttpServletResponse: 1. ...

    servlet 返回 URL

    Servlet API提供了多种方法来获取这些信息,例如`HttpServletRequest`接口中的`getRequestURL()`、`getQueryString()`等方法。 #### 二、获取URL参数 ##### 1. 获取表单内的参数 表单提交时,可以通过`request....

    jsp获取url路径的方法分析.docx

    `request.getRequestURL()` 返回的是完整的URL,包括协议、主机名、端口和请求路径,这对于构建重定向或生成链接非常有用。 最后,`request.getRealPath()` 方法提供了一个物理路径,对应于 `request.getRequestURI...

    request获取url以及其参数

    要获取URL本身,可以使用`HttpServletRequest`的`getRequestURL()`方法。这个方法返回一个`java.lang.StringBuffer`对象,包含了请求的URL,但不包括服务器的主机名和端口号。例如: ```java HttpServletRequest ...

    Hessian实战应用之获取客户端请求URL和重新转发客户端请求

    如果需要包括查询字符串,可以使用`getRequestURI()`结合`getQueryString()`。 下面是一个简单的示例,展示了如何在Hessian服务端获取客户端请求的URL: ```java import com.caucho.hessian.server.HessianServlet...

    JAVA获取项目路径.doc

    request.getRequestURL() ``` 输出如 `http://localhost:8080/TEST/test`。 3. **获取相对地址**: ```java request.getRequestURI() ``` 输出如 `/TEST/test`。 ### 示例代码 下面给出一个简单的示例,...

    HttpServletRequest详解.docx

    - `getRequestURI()` 提供请求行中的URI部分,即除去协议、主机和端口后的路径。 - `getQueryString()` 返回请求行中的参数部分,即URL后面的问号(?)后面的部分,通常包含键值对。 - `getRemoteHost()` 返回...

    java获取路径

    2. **得到IE地址栏地址**:`request.getRequestURL()`,返回的是完整的URL,包括协议、主机、端口和上下文路径。例如,返回`http://localhost:8080/TEST/test`。 3. **得到相对地址**:`request.getRequestURI()`,...

    JAVA中获取各种路径

    #### (2) 获取完整URL地址:`request.getRequestURL()` 此方法返回完整的URL,包括协议、主机、端口以及上下文路径和请求路径,如`http://localhost:8080/TEST/test`,这在日志记录或重定向用户时十分有用。 #### ...

    JSP中Servlet的Request与Response的用法与区别

    本篇文章将详细介绍JSP中Servlet的Request与Response对象的用法及其区别。 Request对象代表客户端发送的HTTP请求,它包含了请求的所有信息。以下是对Request对象主要功能的详细解释: 1. 存储请求数据: - `...

    JAVA的70各问题

    8. 获取页面名称:使用`HttpServletRequest`的`getRequestURI()`和`getRequestURL()`方法分别获取文件名和完整URL。 9. 保留表单数据:当表单验证失败返回时,若想保留原有数据,可以使用JavaScript的`history.back...

    第20章 Request和Response.pdf

    - `getRequestURL()`:返回一个`StringBuffer`,包含完整的请求URL。 2. **获取请求头数据**: - 可以通过`getHeader(String name)`来获取指定请求头的值,例如`Accept`、`Accept-Charset`等。 3. **获取请求体...

    Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析

    - 使用 `request.getRequestURI()` 方法可以获得当前请求的统一资源标识符(URI)。例如: ```java String uri = request.getRequestURI(); System.out.println(uri); // 输出:/TEST/test.jsp ``` 这个方法...

    JavaWeb开发技术-HttpServletRequest对象.pptx

    * `getRequestURI()`:返回请求的 URI,例如 `/user/login`。 * `getRequestURL()`:返回请求的完整 URL,例如 `http://localhost:8080/user/login`。 * `getServletPath()`:返回 Servlet 的路径,例如 `/user`。 ...

    java中request常用方法小结

    2. `getRequestURI()`:它返回请求行中的资源名部分,不包含协议、主机名和端口。对于上述示例,它将返回`/path`。 3. `getQueryString()`:此方法返回请求行中的参数部分,即URL中问号(?)后面的部分。在`...

    java面试题

    8. **获取页面名称**:通过`HttpServletRequest`对象的`getRequestURI()`获取文件名,`getRequestURL()`获取完整的URL。 9. **保留表单数据**:若表单验证未通过,可使用JavaScript的`go(-1)`返回上一页,但这种...

Global site tag (gtag.js) - Google Analytics