一.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
|
|