HttpServletRequest和HttpServletResponse的使用

本文探讨了HttpServletRequest对象的属性操作、参数接收、编码处理,以及HttpServletResponse的响应头设置、cookie管理和数据输出。还介绍了请求转发与重定向的区别。
这两个对象是什么时候被创建的?

在请求报文转发给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针对浏览器中文乱码的解决思路:

  1. 如果是GET请求的中文乱码在接收到数据后,先获取request对象以ISO8859-1字符编码接收到的原始数据的字节数组,然后通过字节数组以指定的编码构建字符串,解决乱码问题
    在这里插入图片描述

  2. 如果是POST请求的中文乱码 在这里插入图片描述

2 HttpServletResponse

代表了一个HTTP响应

  1. 设置服务器向浏览器返回请求时,设置的报文头部(设置响应头),设置请求头部可以控制浏览器的行为
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    响应cookie的作用是 服务器告诉浏览器,要把这个键值对设置到你当前的浏览器里面
    在这里插入图片描述第二次发送请求的时候,cookie里就有这个键值对了
    在这里插入图片描述

  2. 向浏览器发送数据

  • a. resp.getWriter() -> 向浏览器写入文本文档
  • b. resp.getOutputStream() -> 向浏览器写入二进制流

3.请求转发和重定向

  • 请求转发:发生在服务器的内部的跳转,只会有一次请求和响应的过程(带上res和resq)
  • 请求重定向:发生在浏览器的跳转,会产生两次请求和响应
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值