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(“要响应的内容”);
request-response
最新推荐文章于 2023-05-13 10:52:54 发布