目录
1.概述
Request:浏览器发送请求其实是发送http的请求数据,请求数据其实就是一些字符串,这些字符串将来被tomcat解析。解析完成之后tomcat会把这些请求数据放到一个对象里边来保存数据,这个对象就是request对象。所以request请求对象里边就装了一大堆请求数据。
Response:请求处理完之后tomcat会发送一些响应的字符串给到浏览器,这些字符串是由tomcat发送的,将来在service里边写代码的时候使用response来控制哪些响应数据给到浏览器,tomcat数据响应前会把response对象里面的数据读取读取拼成字符串给浏览器。
Request: 获取请求数据。
Resopnse:设置响应数据。
2.Request
2.1Request继承关系
因为tomcat解析这个请求数据,所以由tomcat来提供request对象的实现类。
tomcat来调用service方法,所以由tomcat创建request对象传递到service方法中。
2.2Request获取请求数据
请求数据分为3部分:
1.请求行:GET/request-demo/req1/?username=zhangsanHTTP/1.1
String getMethod():获取请求方式GET
String getContextPath():获取虚拟目录(项目访问路径):/request-demo
String Buffer getRequestURL():获取URL(统一资源定位符)
String getRequestURI(): 获取URl(统一资源标识符)/request-demo/req1
String getQueryString():获取请求参数(GET方式):username=zhangsan&password=123
2.请求头:User-Agent:Mozilla/5.0 Chrome/91.0.4472.106
String getHeader(String name)根据请求头名称,获取值
3.请求体:
ServletInputStream getInputStream():获取字节输入流
BufferedReader getReader():获取字符输入流
2.3Request请求转发
请求转发(forward):一种在服务器内部的资源跳转方式。
实现方式:
req.getRequestDispatcher("资源B路径").forward(req,resp);
请求转发特点:
浏览器地址栏路径不发生变化
只能转发到当前服务器的内部资源
一次请i去,可以在转发的资源间使用request共享数据
3.Response
3.1Response设置响应数据功能介绍
响应数据分为3部分:
1.响应行:HTTP1.1 200 OK
void setstatus(int sc):设置响应状态码
2.响应头:content-Type:text/html
void setHeader(String name,String value):设置响应头键值对
3.响应体
PrintWriter getWriter()获取字符输出流
ServletOutputStream getOutputStream():获取字节输出流
3.2Response完成重定向
重定向(Redirect):一种资源跳转方式
实现方式:
resp.setStatus(302)
resp.setHeader("location","资源B的路径“);
重定向特点:
浏览器地址栏发生变化
可以重定向到任意位置的资源
两次请求,不能在多个资源使用request共享数据