request-response

Request对象
作用:封装了所有请求数据,如果要获取浏览器发送过来的数据,就需要使用Request对象。
获取请求行、请求头、请求体数据
获取虚拟目录:String getContextPath()
获取URI(短的路径):String getRequestURI()
获取请求体字符输入流:BufferedReader getReader()
通用方式获取请求参数(重点)
获取所有请求参数:Map<String,String[]> getParameterMap();
根据name或者一个value值:String getParameter(String name);
根据name或者一个value数组:String[]
getParameterValues(String name);
请求参数中文乱码问题
POST请求
原因:request请求体输入流字符集默认是iso-8859-1不支持中文
解决:第一次获取请求参数之前设置输入流编码
request.setCharacterEncoding(“utf-8”)

GET请求
原因:服务器获取请求行中的请求参数转换成中文使用的码表和客户端浏览器不一致。
解决:在maven tomcat7插件中进行配置


utf-8

请求转发和数据共享
请求转发
概念:项目内部资源跳转的一种方式。
request.getRequestDispathcer(“/不带虚拟目录的路径”).forward(request,response)
数据共享
request作为域对象共享数据,作用范围是一次请求。
void setAttribute(String name, Object value):存储数据到 request域中
Object getAttribute(String name):根据 key,获取值
void removeAttribute(String name):根据 key,删除该键值对

Response对象
作用:封装了响应数据。如果发送数据给客户端浏览器,那么就需要使用Response对象。
重定向
概念:资源跳转的一种方式
response.sendRedirect(“/带虚拟目录的路径”);
注意:重定向是两次请求两次响应,所以跳转前后不能使用request域共享数据。
响应字符数据
在第一次获取响应输出流之前解决中文乱码问题:
response.setContentType(“text/html;charset=utf-8”)
response.getWriter().write(“要响应的内容”);
response.getWriter().print(“要响应的内容”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值