A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一.HttpServletRequest对象

1. HttpServletRequest对象

这个对象代表了客户端的请求,当客户端请求服务器时,客户端所有的请求信息都封装在了这个对象中,通过这个对象中的一些方法可以获取到客户端请求的一些信息。
获取请求头中的信息


获取请求体中的信息

2. HttpServletRequest中文乱码问题的解决

由于编码的问题,使得客户端与服务器在传递中文信息时,会出现乱码问题。
(1) get请求中的乱码问题

get请求的数据,在url地址栏已经进行过编译了,由与getParameter()使用ISO-8859-1解码,因此出现了中文乱码的问题。
解决方法一
可以在收到数据的时候,先得到其字符数组,然后在用UTF-8对其进行解码。
String username new String(userName.getBytes(“ISO-8859-1”) , “UTF-8”);
解决方法二
可以直接在tomcat中配置,以后get请求过来的数据都是用utf-8编码。

在server.xml中的这一行后面加上URIEncoding=“UTF-8”
(2) post请求中的乱码问题

解决方法
post方法是以流的方式传输数据,在取字符之前,设置下对客户端重新编码的编码格式,覆盖request中默认的ISO-8859-1。
request.setCharacterEncoding(“UTF-8”);
这行代码应该放在获取参数之前,该方法对get无效,因为get在url已经编码过了

二. HttpServletResponse对象

1.HttpServletResponse对象

该对象负责返回数据给客户端

思考两种方式的应用场景?
2. HttpServletResponse中文乱码问题的解决

分为字节输出流和字符输出流两种,需要确保服务器出去数据的编码和浏览器解码的编码相同。
(1)字符输出流

(2) 字节输出流


不管是字节流还是字符流,以上代码都可以通过下面这行代码替代

response.setContentType(“text/html;charset=utf-8”);
表示响应的文本为html,浏览器使用utf-8去读服务器传来的数据。
---------------------
【转载】仅作分享,侵删
作者:Time__Lc
原文:https://blog.csdn.net/time__lc/article/details/85112511


1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马