request和response总结

一、request和response

* 当服务器接收到请求后,服务器会创建request和response对象,把请求数据封装到request对象中;
* 然后调用Servlet的service()方法时把这两个对象传递给service()方法;
* 在service()方法中可以通过request对象获取请求数据,可以使用response对象向客户端完成响应;
* 每次请求服务器都会创建新的request和response对象,即每个请求有自己独自的request和response对象。

二、request

1. request功能介绍
* 获取请求头
* 获取请求参数
* Servlet三大域对象之一
* 请求包含和请求转发

2. request域方法
* void setAttribute(String name, Object value):添加或替换request域属性
* Object getAttribute(String name):获取request域指定名称的域属性
* void removeAttribute(String name):移除request域指定名称的域属性
* Enumeration getAttributeNames():获取所有request域的属性名称

3. request获取请求头
* String getHeader(String name):获取指定名称的请求头
* int getIntHeader(String name):获取指定名称的请求头,把值转换成int类型。
* Enumeration getHeaderNames():获取所有请求头名称

4. request请求数据相关其他方法
重点:
* String getMethod():获取请求方式
* String getContextPath():获取上下文路径,即“/” + 应用名称,例如:/day05_1
* void setCharacterEncoding(String):设置请求体的编码
* String getRemoteAddr():获取客户端IP地址

5. 请求参数
获取请求参数,即获取超链接上的参数和表单中的参数
* String getParameter(String name):获取指定名称的参数,如果存在同名参数,那么该方法只获取第一个参数值
* String[] getParameterValues(String name):获取指定名称的参数,因为同名参数的存在,所以返回值为String[]
* Enumeration getParameterNames():获取所有参数名称
* Map getParameterMap():获取所有参数,封装到Map中,key为参数名称,value为参数值。

6.request.getParameter()和request.getAttribute()

* getParameter()是获取客户端参数,它是从客户端传递给服务器的数据。
* getAttribute()是获取服务器端自己设置的数据,而不是客户端的数据。
* request没有setParameter()方法,不能自己设置参数,参数都由客户端传递
* request有setAttribute()方法,在getAttribute()之前,需要先setAttribute()才能获取到。
* getAttribute()和setAttribute()是用来在请求转发和请求包含中的多个Servlet中共享数据。

三、response对象

1. response简介

response是响应对象,用来在Servlet的service()方法中向客户端响应数据。
response的功能如下:
* 设置响应头
* 发送状态码
* 设置响应正文
* 重定向

2. response字符编码
* Tomcat响应数据默认使用ISO-8859-1
* 通常浏览器默认使用GBK编码
(1)response.setCharacterEncoding("utf-8");//设置response.getWriter()的字符编码(乱码)

(2)response.setContentType("text/html;charset=utf-8");
setContentType()方法有两个作用:
* 设置字符流编码。等同与调用了response.setCharacterEncoding("utf-8");
* 设置Content-type响应头,即通知浏览器响应数据的编码为utf-8。
因为设置字符流的编码为utf-8,所以响应给客户端数据为utf-8编码,因为设置了Content-type头为utf-8,所以浏览器会使用utf-8来解析响应数据
没有乱码!

3. response字符流缓冲区

response字符流缓冲区大小为8KB,当向字符流中写入数据后,数据可能只在缓冲区中,而没有发送到浏览器。
可以调用response.flushBuffer()或response.getWriter().flush()方法刷新缓冲区,把数据发送到浏览器。

4. 设置响应头

response.setHeader("Content-type", "text/html;charset=utf-8");
等同与
response.setContentType("text/html;charset=utf-8");

response.setHeader("Refresh", "5; URL=http://www.itcast.cn");

======================

5. 指定状态码

response.setStatus(200):设置状态码为200
response.sendError(404, “您要查找的资源不存在”):设置状态码为404
repsonse.sendError(500, “服务器出氏了”):设置状态码为500

在调用sendError()方法时,不只是设置了状态码,而且还会给浏览器一个显示错误的页面。

6. 重定向

response.sendStatus(302);
repsonse.setHeader("Location", "http://www.baidu.com");

快捷的方法重定向:

response.sendRedirect("http://www.baidu.com");

* 重定向是两次请求
* 重定向不局限与当前应用,也可以是其他应用,例如重定向到百度
* 重定向响应码为302,而且必须有Location响应头
* 重定向与response响应流同时使用。

### 回答1: request是指向服务器请求数据的信息,包含请求方法、、请求头等信息是服务器向客户端发送的响应数据,包含状态码、响应头、实体内容等信息。区别在于request是由客户端向服务器发起请求,而response则是由服务器向客户端返回响应。 ### 回答2: requestresponse是在计算机网络中常用的术语,用于描述信息传递的过程。简单来说,request是指发送方向接收方发送的请求,而response是指接收方向发送方返回的响应。 具体来说,request是客户端(通常是浏览器)向服务器发送的一种请求,以获取某种资源或执行某种操作。例如,当我们在浏览器输入一个网址,浏览器会发送一个request给服务器,请求该网址对应的网页内容。request通常包含了请求的方法(例如GET或POST)、请求的URL、请求的头部信息和请求的正文内容等。 而response是服务器对客户端发送的request的回应。response中包含了服务器对请求的处理结果以及相应的数据。例如,对于上述的网页请求,服务器会返回一个包含网页内容的response给浏览器。response通常包含了响应的状态码(例如200表示请求成功,404表示未找到资源),响应的头部信息和响应的正文内容等。 总结起来,request是从客户端发送到服务器的请求,而response是服务器返回给客户端的响应。它们之间的区别在于方向的不同:request是客户端发送给服务器,而response是服务器发送给客户端。在请求和响应的过程中,客户端和服务器需要进行信息的传递和处理,以达到双方的目标。 ### 回答3: requestresponse是计算机网络通信中常用的两个概念。 request(请求)是指客户端向服务器发送的请求消息,客户端通常请求服务器提供某种数据或者执行某种操作。请求消息中通常包括请求方法、URL、协议版本、请求头部和请求正文等信息。客户端发送请求后,服务器根据请求消息,对客户端的请求进行处理并返回相应的结果。 response(响应)是指服务器向客户端发送的响应消息,服务器接收到客户端的请求后,根据请求内容进行相应的处理,并将处理结果封装成响应消息发送回客户端。响应消息通常包括响应状态码、响应头部和响应正文等信息。客户端收到响应消息后,根据响应的内容进行相应的处理。 二者的区别主要体现在以下几个方面: 1. 角色:request是客户端发起的请求,而response是服务器对请求的响应。 2. 方向:request是客户端发送给服务器的消息,而response是服务器发送给客户端的消息。 3. 内容:request主要包括请求的方法、URL等信息,而response主要包括响应的状态码、头部和正文等信息。 4. 顺序:request先发送给服务器,服务器接收并处理后返回response给客户端。 综上所述,requestresponse在计算机网络通信中扮演着不同的角色,前者是客户端对服务器的请求,后者是服务器对请求的响应。两者的内容和方向也不同,但它们是相互配合完成网络通信的重要组成部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值