关闭

Request中的各种方法

标签: java webweb
129人阅读 评论(0) 收藏 举报
分类:

前言

Request中方法众多,对于Java Web程序员来说,种种方法都会在工作中常常用到。Request由于不是JDK的一部分,这些方法的用法也没有专门的API可以查,所以在工作中遇到Request中方法的时候,所以常常感到困惑,因为觉得网上写的不清楚,自己又懒得写一个Web测试程序。这篇文章,一次性把Request中的各个方法的返回写在这里并做一个详细的总结,以备以后工作中用到可以随时查看。

 

示例

为了让后台可以取到queryString(这个专门在get和post的区别的文章中会讲解的),做一个表单,用post方式提交:

<body>
    <form action="request?a=1&b=2&c=3" method="post">
        <input type="submit" value=" 提交 " />
    </form>
</body>

web.xml就不写了,大家应该都会配置,看下后台doPost方法的写法:

复制代码
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
{
    System.out.println("request.getAuthType():" + request.getAuthType()); // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是null
    System.out.println("request.getCharacterEncoding():" + request.getCharacterEncoding()); // 获取字符编码
    System.out.println("request.getContentLength():" + request.getContentLength()); // 返回请求体内容的长度
    System.out.println("request.getContentType():" + request.getContentType()); // 获取内容类型
    System.out.println("request.getContextPath():" + request.getContextPath()); // 获取上下文路径,就是"/"+工程名
    System.out.println("request.getLocalAddr():" + request.getLocalAddr()); // 获取应用服务器的IP地址
    System.out.println("request.getLocalName():" + request.getLocalName()); // 获取应用服务器的主机名
    System.out.println("request.getLocalPort():" + request.getLocalPort()); // 获取应用服务器的端口号
    System.out.println("request.getMethod():" + request.getMethod()); // 获取请求方式获取请求方式(GET与POST为主,也会有PUT、DELETE、INPUT)
    System.out.println("request.getPathInfo():" + request.getPathInfo());
    System.out.println("request.getPathTranslated():" + request.getPathTranslated());
    System.out.println("request.getProtocol():" + request.getProtocol()); // 获取客户端向服务端传送数据使用的协议名称
    System.out.println("request.getQueryString():" + request.getQueryString()); // 获取追加到Url后面的查询字符串
    System.out.println("request.getRemoteAddr():" + request.getRemoteAddr()); // 获取发出请求的客户端的IP地址
    System.out.println("request.getRemoteHost():" + request.getRemoteHost()); // 获取发出请求的客户端的主机名
    System.out.println("request.getRemotePort():" + request.getRemotePort()); // 获取发出请求的客户端的端口号
    System.out.println("request.getRemoteUser():" + request.getRemoteUser()); // 如果用户已经过认证,则返回发出请求的用户登录信息 
    System.out.println("request.getRequestedSessionId():" + request.getRequestedSessionId()); // 获取sessionId
    System.out.println("request.getRequestURI():" + request.getRequestURI()); // 获取"/"+工程名+请求路径
    System.out.println("request.getRequestURL():" + request.getRequestURL()); // 获取完整的请求地址,不带queryString
    System.out.println("request.getScheme():" + request.getScheme()); // 获取当前链接使用的协议,一般应用就是http,SSL返回https
    System.out.println("request.getServerName():" + request.getServerName()); // 获取URL请求的名字(以Ip请求就是Ip,以域名请求就是域名)
    System.out.println("request.getServerPort():" + request.getServerPort()); // 获取URL请求的端口号
    System.out.println("request.getServletPath():" + request.getServletPath()); // 获取请求路径
    System.out.println("request.isSecure():" + request.isSecure()); // 获取此请求是否使用安全协议(比如https)
}
复制代码

我从本地发起一个请求"http://localhost:8080/TestWeb/request?a=1&b=2&c=3",先看下用工具抓取的此次请求、响应的数据(火狐、360、谷歌都有,按F12即可):

再看一下后台的运行结果:

复制代码
request.getAuthType():null
request.getCharacterEncoding():null
request.getContentLength():0
request.getContentType():application/x-www-form-urlencoded
request.getContextPath():/TestWeb
request.getLocalAddr():127.0.0.1
request.getLocalName():dell
request.getLocalPort():8080
request.getMethod():POST
request.getPathInfo():null
request.getPathTranslated():null
request.getProtocol():HTTP/1.1
request.getQueryString():a=1&b=2&c=3
request.getRemoteAddr():127.0.0.1
request.getRemoteHost():127.0.0.1
request.getRemotePort():3405
request.getRemoteUser():null
request.getRequestedSessionId():B198D2D352F2F23A1B3754246D68B803
request.getRequestURI():/TestWeb/request
request.getRequestURL():http://localhost:8080/TestWeb/request
request.getScheme():http
request.getServerName():localhost
request.getServerPort():8080
request.getServletPath():/request
request.isSecure():false
复制代码

getParameter、getAttribute/setAttribute、getSession/setSession等类似方法,大家都比较熟悉,也比较不会搞错,就不列了,列的都是一些相对不常用的request方法。很多方法都已经能看出返回的是什么了,但是有些方法由于我这里是从本地发到本地的,所以看不到效果,不过注释上也给了详细的解释了,两个没写注释的方法查不到是什么意思,也试不出来怎么样才不是null,以后会记得关注,知道了就会更新。

0
0
查看评论

request中的各种方法

前言 Request中方法众多,对于Java Web程序员来说,种种方法都会在工作中常常用到。Request由于不是JDK的一部分,这些方法的用法也没有专门的API可以查,所以在工作中遇到Request中方法的时候,所以常常感到困惑,因为觉得网上写的不清楚,自己又懒得写一个Web测试程序。这篇文章...
  • zhangyuan19880606
  • zhangyuan19880606
  • 2016-04-13 12:11
  • 421

request常用方法大全

原地址 一、HttpServletRequest介绍   HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 二、Request常用...
  • u011293970
  • u011293970
  • 2016-11-28 09:37
  • 1219

JSP request所有方法

<br /><%<br />//header.jsp<br />out.println("Protocol: " + request.getProtocol() + "<br>");<br />...
  • java_pengjin
  • java_pengjin
  • 2010-12-22 15:23
  • 7989

Request对象的主要方法有哪些?

Request对象的主要方法:  setAttribute(String name,Object):设置名字为name的request 的参数值  getAttribute(String name):返回由name指定的属性值  getAttribut...
  • zhu1qiu
  • zhu1qiu
  • 2017-05-11 20:22
  • 915

Servlet第四篇【request对象常用方法、应用】

什么是HttpServletRequest HttpServletRequest**对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,**HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。 简单来说,要得到浏览器信息,就找HttpServl...
  • hon_3y
  • hon_3y
  • 2017-01-20 16:07
  • 1688

java中Request和Response常用方法及举例

**Request的常用方法:** setAttribute() 在Request域中存储数据 setCharacterEncoding() 设置请求参数的编码方式,只对post请求有效 getAttribute() ...
  • ypl603330811
  • ypl603330811
  • 2017-06-21 16:14
  • 453

Request对象的概述及API的介绍 Request对象的概述:什么是Request对象; Request对象的API的代码演示

Request对象的概述及API的介绍 Request对象的概述:什么是Request对象 开发的软件都是B/S结构软件,从浏览器向服务器提交一些数据,将这些内容进行封装就封装成了一个请求对象(Request对象)。 Request对象的API 获得客户机信息: getMethod();获...
  • boss_way
  • boss_way
  • 2017-11-21 12:20
  • 108

使用request对象获取表单的信息

使用request对象获取表单的信息
  • Java_Mike
  • Java_Mike
  • 2016-09-05 22:41
  • 2602

Angular服务Request异步请求的详细分析

首先这里我简单写个例子来方便您的理解var request = { post: function() { var errorCallback = { error: function(f) { this.fun = f; ...
  • qq_27080247
  • qq_27080247
  • 2016-05-23 17:04
  • 9389

struts2中几种获得request,session等对象的方法

1、通过ActionContext来获得举例代码如下:   情况1:    ActionContext context = ActionContext.getContext();    Map reques...
  • zztp01
  • zztp01
  • 2011-08-25 14:02
  • 514
    个人资料
    • 访问:46627次
    • 积分:834
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:112篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论