一、HttpServletRequest
HttpServletRequest------------>封装对象的请求信息,浏览器发出
HttpServletresponse<------------封装服务器的响应信息,服务器发出
1.Request对象学习:
服务器在接收到请求后,会给此次请求创建-个request对象,此对象中封存了此次请求相关的数据
作用:存储请求数据
注意:每次请求都会创建新的request对象存储请求数据
2.Request对象特点
由服务器创建
一次请求创建一个Request对象
生命周期为一次请求内,请求结束即销毁此次请求的Request对象
3.Request获取请求数据
请求行:请求方式 请求 URL协议
getMethod(): 返回请求方式
getRequestUrl(); 返回请求url
getRequestUri(); 返回请求uri
getRequestUrl(); 返回请求url
getQueryString():返回get请求中的URL中的用户数据
注意: post请求中没有此方法
getSchema(); 返回协议
请求头
getHeader(String name) 根据键名获取请求头信息
注意:如果获取的请求头信息不存在返回nu11。
getHeaderNames()返回存储了请求头键名的枚举集合
3.请求实体
getParameter(String name)根据键名获取数据
注意:键名其实就是前端页面中的表单标签的name属性的值或者前端页面其他方式提交数据的键的名字如果请求中没有对应的请求数据,则返回null。
getParameterValues (String name) 根据键名获取同名不同的值,返回数组
注意:如果没有对应的键名,则返回null
二、HttpServletResponse
4.response处理响应
设置响应行:协议 状态码 状态消息
resp.sendError(int status);
作用:可以自主的响应状态给浏览器设置响应头
addHeader(String name , String value) 添加响应头信息,同名数据不会覆盖
setHeader(String nanme,String value) 设置响应头信息,会覆盖原有信息。如果没有此响应头则添加该信息。
5.请求网络相关数据
getRemoteAddr() 获取客户端的IP地址
getRemotePort() 获取客户端端口号
getLocalAddr() 获取服务器端的ip
getLocalPort() 获取服务器端的端口号
getParameterNames() 返回实体数据中键名的枚举
三、乱码问题
6.请求乱码问题:服务器获取的请求数据乱码
1).post请求方式乱码:
req.setCharacterEncoding("utf-8");
2).get请求乱码方式解决:
方式一:毎个数据都要単独的迸行装換
String uname=req.getParameter("uname");
String uname2=new String(uname.getBytes("iso-8859-1"),"utf-8");
方式二:
req.setCharacterEncoding("utf-8");
在tomcat的server.xml文件中的Connector标签中増加属性: useBodyEncodingForURI= "true"
7.如何解决响应数据乱码
resp.setContenType(“text/html;charset=utf-8”);
8.service代码编写流程:
设置请求编码格式
设置响应编码格式
获取请求信息
处理请求信息
响应处理结果
9.请求转发
1.为什么需要请求转发?
一次请求的处理需要多个Servlet的联动操作,第一个Servlet需要用到其他Servlet已经声明的逻辑处理代码
2.请求转发的本质是什么?
其实就是在一个Servlet中调用其它的Servlet
3.请求转发的特点
1. 降低Servlet之间代码冗余
2. 一次请求转发内的Servlet共享此次请求的request和response对象
3. 浏览器地址信息不改变,一次请求
4.使用request对象作为请求转发的数据的载体的方法是什么?(存储和获取)
setAttribute方法 服务器接收到浏览器发送的请求后,服务器把下次请求可能会用到的数据进行声明响应给浏览器,浏览器进行存储,在下次发送请求时进行附带
getAttribute
10.重定向
作用:保护第一次的请求,避免因为用的刷新动作频繁的触发A的执行
特点:两次请求,地址栏信息改变
11.cookie
(1)简要说明为什么需要cookie
不同的请求使用相同的请求数据,但是请求只要结束数据就被销毁了,其他请求需要将公共数据重新书写发送
(2)cookie的特点是什么
1.浏览器端的数据存储技术
2.需要被存储是在服务器端进行声明,以响应的方式告诉浏览器进行存储
3.不适合大量数据的存储
编辑于 2019-05-06