这两个对象是什么时候被创建的?
在请求报文转发给servlet容器的时候,servlet容器会解析成HttpServletRequest对象,也会生成一个HttpServletResponse对象,传给doGet(),doPost()方法。一次请求和响应的过程对应了一个request和response对象(次抛)
1 HttpServletRequest
- req.setAttribute(); -> 设置一个属性在request对象里面,以键值对的形式来设置,键是一个字符串,值是一个对象
- req.getAttribute(); -> 根据键来获得属性
- req.setCharacterEncoding(“UTF-8”); -> 设置request对象的编码方式为UTF-8
接受浏览器发送的参数:
- req.getParameter(); -> 根据参数名来获得前端传到后端的参数值
- req.getParameterValues(); -> 如果一个参数名对应了多个值的话,就以数组的形式来获得这些值
- req.getRemoteAddr(); -> 获得浏览器的IP地址
- req.getMethod(); -> 获得请求方式
做一个IP禁止访问的例子:

servlet针对浏览器中文乱码的解决思路:
-
如果是GET请求的中文乱码在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题

-
如果是POST请求的中文乱码

2 HttpServletResponse
代表了一个HTTP响应
-
设置服务器向浏览器返回请求时,设置的报文头部(设置响应头),设置请求头部可以控制浏览器的行为




响应cookie的作用是 服务器告诉浏览器,要把这个键值对设置到你当前的浏览器里面
第二次发送请求的时候,cookie里就有这个键值对了

-
向浏览器发送数据
- a. resp.getWriter() -> 向浏览器写入文本文档
- b. resp.getOutputStream() -> 向浏览器写入二进制流
3.请求转发和重定向
- 请求转发:发生在服务器的内部的跳转,只会有一次请求和响应的过程(带上res和resq)
- 请求重定向:发生在浏览器的跳转,会产生两次请求和响应


本文探讨了HttpServletRequest对象的属性操作、参数接收、编码处理,以及HttpServletResponse的响应头设置、cookie管理和数据输出。还介绍了请求转发与重定向的区别。
397

被折叠的 条评论
为什么被折叠?



