Request和Response
一.request和response简介:
1.request和response的作用执行流程
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
故:当需要获取客户机提交过来的数据时,找request对象就行了。
当需要向客户机输出数据,找response对象。
请求响应的具体现实流程:
1.浏览器发送请求
2.服务器接收请求,创建两个对象(request和response),将请求的信息封装request对象
3.找到对应的servlet,将这两个对象传递给servlet
4.Servlet收到请求,执行service方法,处理自己的业务逻辑,生成动态的内容,将内容返回给服务器
5.服务器收到内容之后,进行拆分,生成响应信息,返回给浏览器
6.浏览器解析
2.关于 request和response的体系结构:
httpServlet实现了service方法。
Servlet的service方法中有两个参数servletRequest和servletResponse
httpServlet实现了service方法
将两个对象进行了强转
二.response
响应:用于向浏览器写东西
1.response常用方法:
2.response操作响应行(操作状态码)
格式:协议/版本 状态码 状态码说明
例如:HTTP/1.1 200 OK
在http响应行中,包括协议,版本号,以及有一个很重要的值,它叫做响应状态码.响应行中我们主要就是操作这些状态码,它可以有五种类型取值:
100-199
200-299
300-399
400-499
500-599
常用状态码
200请求成功(其后是对GET和POST请求的应答文档。)
302所请求的页面已经临时转移至新的url。(重定向)(配合location响应头使用)
304未按预期修改文档。(让浏览器读缓存)
客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since(什么时候修改的))头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
404没有找到文件或目录。(用户操作错误)
405请求中指定的方法不被允许
500请求未完成。服务器遇到不可预知的情况(代码错误)
504网关错误.
三.request
请求:要想获取浏览器发送过来的参数,通过request就可以了
1.HttpServletRequest对象用于封装http请求,对于http请求它有三部分组成,http请求行,http请求头及请求正文,
常用方法:
2.request操作请求行
格式:请求方式 请求资源 协议/版本
例子:GET /day10 HTTP/1.1
public String getMethod()获取请求方式例如 GET、POST
public String getRequestURI()获取去请求资源(不带参数) 是uri 例如:/day10/r
public String getProtocol()获取协议的名称和版本。(例如 HTTP/1.1)
public String getQueryString()
返回包含在请求 URL 中路径后面的查询字符串。如果 URL 没有查询字符串,则此方法返回 null。
3.request操作请求头
格式:key/value(value可以为多个)
☆public String getHeader(String name) 获取字符串格式的请求头
以 String 的形式返回指定请求头的值。
4.request获取请求参数(只有post有请求体)
Get请求 地址栏
http://localhost:端口/day10/1.html?username=tom&password=1234&hobby=eat&hobby=sleep
Post请求里面放的是?号后面的东西
请求参数是浏览器发送请求时携带的信息。
Get和Post请求的区别:
GET:参数会追加到地址栏上,post不会
请求参数大小有限制(一般不超过1kb),post没有
POST:相对于get请求安全
有请求体,存放请求参数,get没有
dopost方法里面访问doget方法内容
只要在post方法里调用就可以了反之亦然
doget(request,response);
☆public String getParameter(String name)(获取单一的值)
以 String 形式返回请求参数的值,如果该参数不存在,则返回 null
public String[] getParameterValues(String name)(获取多个值)
返回包含给定请求参数拥有的所有值的 String 对象数组,如果该参数不存在,则返回 null。
☆public java.util .Map<String, String[]> getParameterMap()(以map方式返回的所有的参数和值)
返回此请求的参数的 java.util.Map。请求参数是与请求一起发送的额外信息。对于 HTTP
servlet,参数包含在查询字符串或发送的表单数据中。
public java.util.Enumeration<E> getParameterNames()
返回包含此请求中所包含参数的名称的 String 对象的 Enumeration。如果该请求没有参数,则此方法返回一个空的 Enumeration。
5.request获取参数中文出现乱码

浙公网安备 33010602011771号