HttpServletResponse编码问题
来源:互联网 发布:时间同步服务器软件 编辑:程序博客网 时间:2024/05/18 02:38
1.HttpServletResponse对象
(1).Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest;
(2).HttpServletResponse对象可以向客户端发送三种类型的数据:a.响应头b.状态码c.数据
(3).自己去看HttpServletResponse的API
(4).rsponse常见应用:
a.使用OutputStream向客户端写入中文:
String data = "中国";OutputStream stream = response.getOutputStream();//获取一个向Response对象写入数据的流,当tomcat服务器进行响应的时候,会将Response中的数据写给浏览器stream.write(data.getBytes("UTF-8"));//此时在html页面会出现乱码,这是因为:服务器将"中国"按照UTF-8码表进行编码,得到对应的码值假设是98,99,服务器将码值发送给浏览器。浏览器默认按照GB2312进行解码,在GB2312码表中对应的字符已不是"中国"正确代码如下:response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8String data = "中国";OutputStream stream = response.getOutputStream();stream.write(data.getBytes("UTF-8"));
b.使用Writer向客户端写入中文:
PrintWriter writer = response.getWriter();writer.write("中国");//同样会出现乱码,这是因为我们将"中国"写入response对象时,tomcat服务器为了将数据通过网络传输给浏览器,必须进行编码,由于没有指定编码方式,默认采用ISO8859-1,当浏览器接收到数据后,根据GBK解码必然出现乱码正确代码如下:response.setCharacterEncoding("UTF_8");//设置Response的编码方式为UTF-8response.setHeader("Content-type","text/html;charset=UTF-8");//向浏览器发送一个响应头,设置浏览器的解码方式为UTF-8,其实设置了本句,也默认设置了Response的编码方式为UTF-8,但是开发中最好两句结合起来使用//response.setContentType("text/html;charset=UTF-8");同上句代码作用一样PrintWriter writer = response.getWriter();writer.write("中国");
c.使用Response实现文件下载:
String path = this.getServletContext.getRealPath(“/中国.jpg”);String fileName = path.subString(path.lastIndexOf(“\\”));Response.setHeader(“content-disposition”,”attachment;filename”+URLENcode r.encode(fileName,”UTF-8”));//设置响应头,告诉浏览器,该响应是下载响应,如果文件名包含中文,必须使用URL编码……对文件进行读写**转自:http://www.cnblogs.com/xiaoqv/archive/2012/05/14/2500725.html**
0 0
- HttpServletResponse编码问题
- HttpServletResponse响应头与HttpServletRequest请求头及编码问题
- HttpServletRequest&HttpServletResponse&乱码问题
- HttpServletResponse 乱码问题
- Response对象、HttpServletResponse简介、处理字节编码问题、实现动态文件下载
- Response对象、HttpServletResponse简介、处理字节编码问题、实现动态文件下载
- HttpServletResponse输出中文的问题
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- HttpServletResponse
- 机器学习算法与Python实践之(一)k近邻(KNN)
- 3.8 二叉树中结点最大的距离 & 重建二叉树 & 顺序遍历二叉树
- HDU1253 胜利大逃亡(DFS)
- [Java基础]Java新手通病的知识总结
- 新师徒第一次会议
- HttpServletResponse编码问题
- DVWA之Brute Force
- 【数据库学习】机房收费系统(二)组合查询
- 【LeetCode 88 】 Merge Sorted Array
- 软件测试初体验
- 消除左递归
- 如何仅用递归函数和栈操作逆序一个栈
- Java面试题之一---------字符串截取(字节分配)(编码)
- jQuery带左右按钮控制图片切换