Response对象和request对象的作用分别是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Response对象和request对象的作用分别是啥?相关的知识,希望对你有一定的参考价值。
request 请求对象Response 响应对象· Request对象:为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的HTTP变量,在这个域名下存放在浏览器中的cookie,任何作为查询字符串而附于URL后面的字符串或页面的<FORM>段中的html控件的值。也提供使用Secure Socket Layer(SSL)或其他加密通信协议的授权访问,及有助于对连接进行管理的属性。· Response对象:用来访问服务器端所创建的并发回到客户端的响应信息。为脚本提供HTTP变量,指明服务器和服务器的功能和关于发回浏览器的内容的信息,以及任何将为这个域而存放在浏览器里新的cookie。它也提供了一系列的方法用来创建输出,例如无处不在的Response.Write方法。 . 1、 Request对象成员的概述
a) Request对象的集合
Request对象提供了5个集合,可以用来访问客户端对Web服务器请求的各类信息,这些集合如下表:
Request对象的集合及说明
.
b) Request对象的属性
Request对象唯一的属性及说明如下表所示,它提供用户请求的字节数量的信息,它很少用于ASP页,我们通常关注指定值而不是整个请求字符串。
c) Request对象的方法
Request对象唯一的方法及说明如下表所示,它允许访问从一个<FORM>段中传递给服务器的用户请求部分的完整内容。
Request对象的方法及说明
2、 Response对象成员概述 ..
a) Response对象的集合
Response对象只有一个集合,如下表所示,该集合设置希望放置在客户系统上的cookie的值,它直接等同于Request.Cookies集合。
Response对象的集合及说明
b) Response对象的属性
Response对象也提供一系列的属性,可以读取(多数情况下)和修改,使响应能够适应请求。这些由服务器设置,我们不需要设置它们。需要注意的是,当设置某些属性时,使用的语法可能与通常所使用的有一定的差异。
Response对象的属性及说 参考技术A 通俗一点的说,Request对象里面包含了所有你访问时发起的请求的所有参数,Response对象则包含了你请求之后服务器给你的所有的响应信息。通过这两个参数你可以获得很多HTTP访问中的参数信息。 参考技术B 一个发送一个是请求
javaweb入门-----request与response的作用
request对象和request对象的原理
1.request和response对象request对象和request对象的原理时由服务器创建的,我们来使用它们
2.request对象是来获取请求消息,response对象是来设置响应消息
requset对象继承体系结构:
ServletRequest -- 接口
| 继承
HttpServletRequest -- 接口
request功能:
1.获取请求行数据
*GET /day14/demo1?name=zhangsan HTTP/1.1
*方法
1. 获取请求方式:GET
*String getMethod()
**2.获取虚拟目录:/day14
*String getContextPath()
3.获取Servlet资源路径:/demo1
*String getServletPath()
4.获取get方式的请求参数:name=zhangsan
*String getQueryString()
**5.获取请求URI:/day14/demo1
*String getRequestURI(); /day14/demo1
*StringBuffer getRequestURL(): http://localhost/day14/demo1
例子:
URI:统一资源标识符 共和国
URL:统一资源定位符 中华人民共和国
6.获取协议及版本:HTTP/1.1
*String getProtocol()
7.获取客户机的IP地址:
*String getRemoteAddr()
2.获取请求头数据
*方法:
***String getHeader(String name);通过请求头的名称获取请求头的值
*Enumeration<String> getHeaderNames();获取所有的请求头名称
//Enumeration 枚举的一种,想象成迭代器,可以遍历出数据
3.获取请求体数据
*请求体:只有post请求方式,才有请求体,在请求体中封装了post请求的请求参数
*步骤:
1.获取流对象
* BufferedReader getReader();获取字符输入流,只能操作字符数据
* ServletInputStream getInputStream();获取字节输入流,可以操作所有类型数据
2.再从流对象中拿数据
2:主要功能
1.获取请求参数通用方式(无论get或post请求方式都可以使用下列方法获取请求参数)
1.String getParameter(String name):根据参数名称获取参数值
username=zhangsan&pswd=123
2.String[] getParametervalues(String name):根据参数名称获取参数值的数组
hobby=study&hobby=game
3.Enumeration<String> getParameterNames():获取所有请求的参数名称
4.Map<String,String[]>getParameterMap();获取所有参数的map集合
**中文乱码问题 *
get方式:tomcat8 已结将get方式乱码问题解决了
*post方式:会乱码 request.setCharacterEncoding("utf-8");
2.请求转发(包含):一种在服务器内部的资源跳转方式(例如 servletA 需要用 servletB的资源)
作用:
1.当一个请求需要由多个servlet协作完成时,这时可以使用请求转发(包含)
2.请求转发:由后一个servlet响应数据(体),前一个servlet可以设置响应头(留头不留体)
3.请求包含:有两个servlet共同完成响应体,由前一个servlet设置响应头(留体不留头)
4.无论请求转发或包含,都是使用同一个request和response
1.步骤:
1.通过request对象获取请求转发器对象:RequestDisspatcher getRequestDisspatcher(String path)
2.使用RequestDisspatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
(RequestDisspatcher对象来进行转发:include 包含的方法)
2.特点:
1.浏览器地址栏路径没有发生变化
2.只能转发到当前服务器内部资源中
3.转发是同一次请求
请求转发:留头不留体
请求包含:留体不留头
请求转发和重定向的区别:
1.请求转发是一个请求一个响应,重定向是两次请求两次响应
2.请求转发地址栏内容不变,重定向显示最后一个请求的地址
3.请求转发只能转发到本项目中的其他servlet,重定向还可以重定向到其他项目的servlet
4.请求转发是服务器内转发,只需写出要转发的servlet路径,重定向要写出项目名
重定向 response:请求给servlet1 servlet1做不了回应给客户端,再请求servlet2,servlet2回应
response.sendRedirect("/webrequest/redirect2"); 重定向要加上项目名
request作为域时的主要功能:
共享数据:
*域对象:一个有作用范围的对象,可以在范围内共享数据
*request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
*方法:
1.void setAttribute(String name, Object obj);存储数据
2.Object getAttribute(String name);通过键获取值
3.void removeAttribute(String name);通过键移除键值对
了解了request和response的基本用法,并且掌握了请求转发包含与重定向的知识后,就可以明白当请求到来时,servlet是如何处理的。下文将介绍数据转发到页面,呈现给用户是用怎样的方式,jsp与el表达式
以上是关于Response对象和request对象的作用分别是啥?的主要内容,如果未能解决你的问题,请参考以下文章