HttpServletRequest获取URL(参数,路径,端口号,协议等)详解

Posted 叶涛网站推广优化

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpServletRequest获取URL(参数,路径,端口号,协议等)详解相关的知识,希望对你有一定的参考价值。

  首页 > Java Web > SpringMvc应用 > HttpServletRequest

  HttpServletRequest获取URL常用方法如下:

  假设客户端请求的地址url:http://localhost:8082/TestReq/MyServlet/username=51gjie&age=20

  //客户请求求的URL,不包括参数数据

  request.getRequestURL //返回http://localhost:8082/TestReq/MyServlet

  //将URL的域名和尾随的参数截取掉,剩下的那部分就是URI

  request.getRequestURI //返回/TestReq/MyServlet

  //返回URL上的参数部分的字符串,必须是GET的请求才有效,不然报错

  request.getQueryString //返回username=51gjie&age=20

  //返回请求的方案名,如http,ftp,https等

  request.getScheme //返回http

  //HTTP请求的的方法名,默认是GET,也可以指定PUT或POST

  request.getMethod //返回GET

  //即斜杆加工程名

  request.getContextPath //返回/TestReq

  //服务器主机名

  request.getServerName //返回localhost

  //服务器上web应用的访问端口

  request.getServerPort request.getLocalPort //返回8082

  //返回请求的协议名和版本,如HTTP/1.1等

  request.getProtocol //返回HTTP/1.1

  //工程部署的完整路径字符串接上参数中的字符串

  request.getRealPath("/WEB-INF") //返回d:\\omc_jboss\\server\\default\\.\\deploy\\TestReq.war\\WEB-INF

  //工程之后到参数之前的这部分字符串

  request.getServletPath //返回/MyServlet

  //字符串包含与客户端发送请求的URL相关的额外信息

  request.getPathInfo //返回null

  //请求URL体内容的长度,只对POST和PUT类型的请求有效

  request.getContentLength //返回-1

  //返回一个表示在服务器文件系统上的PathInfol转换成路径的字符串

  request.getPathTranslated //返回null

  版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

如何从 HttpServletRequest 获取请求 url [重复]

【中文标题】如何从 HttpServletRequest 获取请求 url [重复]【英文标题】:How to get the request url from HttpServletRequest [duplicate] 【发布时间】:2011-02-21 02:07:50 【问题描述】:

假设我发出这样的获取请求:

GET http://cotnet.diggstatic.com:6000/js/loader/443/JS_Libraries,jquery|Class|analytics|lightbox|label|jquery-dom|jquery-cookie?q=hello#frag HTTP/1.0
Host: cotnet.diggstatic.com:6000

我的 servlet 接受这样的请求: HttpServletRequest 请求;

当我调试我的服务器并执行时,我得到以下信息:

req.getRequestURL().toString() = "http://cotnet.diggstatic.com:6000/js/loader/443/JS_Libraries,jquery%7cClass%7canalytics%7clightbox%7clabel%7cjquery-dom%7cjquery-cookie"
req.getRequestURI() = "/js/loader/443/JS_Libraries,jquery%7cClass%7canalytics%7clightbox%7clabel%7cjquery-dom%7cjquery-cookie"
req.getQueryString() = "q=hello"

如何获取片段信息? 此外,当我调试请求时,我看到一个 java.net.URI 类型的 uri_ 字段,其中包含片段信息。这正是我想要的。我怎样才能得到它?

【问题讨论】:

【参考方案1】:

“片段标识符的功能与 URI 的其余部分不同:即,它的处理仅在客户端进行,没有服务器的参与。” Wikipedia about the Frament Identifiert

如需进一步参考,请参阅RFC 2394 Section 4.1

【讨论】:

以上是关于HttpServletRequest获取URL(参数,路径,端口号,协议等)详解的主要内容,如果未能解决你的问题,请参考以下文章

HttpServletRequest获取URL(参数,路径,端口号,协议等)详解

如何从 HttpServletRequest 获取请求 url [重复]

HttpServletRequest常用获取URL的方法

java中HttpServletRequest常用获取url资源名等方法总结

HttpServletRequest获取请求得URL信息

HttpServletRequest getXXX 获取参数请求uri url全路径