服务器端HttpServletResponse对象编码发送信息及浏览器端解码显示信息原理剖析
来源:互联网 发布:网络用词pa是什么意思 编辑:程序博客网 时间:2024/06/06 05:47
服务器端HttpServletResponse对象对信息编码向浏览器端发送数据及浏览器端解码显示信息原理剖析
一:原理过程分析
<1>服务器端:首先服务器端要把信息转换成成字节流.
(1.1)若你指定编码格式,服务器端使用你指定的编码格式进行编码转换成字节流。
(1.2)若你没有指定编码格式,服务器端会使用它的默认编码格式 ISO-8859-1 转换成字节流。
接着服务器端把转换好的字节流发送给浏览器。
<2>浏览器端: 再接着就是浏览器的工作了,浏览器拿到这些字节流,要进行解码显示。
浏览器首先会从(2.1)响应头,或(2.2)响应体中进行查找,看是否可以找到指定的编码进行解码显示。
若找到,则按照服务器端发过来的响应信息中指定的编码进行解码显示。
若找不到,则按照浏览器端,(2.3)自己默认的编码格式进行解码显示。
二: 解决方法
<1>服务器端的编码:服务器端如何手动指定编码格式 两种方式设置服务器编码字符数据的编码方式
1 response.setContentType("text/html;charset=utf-8");(推荐使用!)
2 response.setCharacterEncoding("utf-8");
<2> 浏览器端的解码: 发送之前你需要设置响应体的mime类型 , 如何设置 ?
(即浏览器要找的解码格式。)两种设置方法。
1 设置在响应头中 response.setContentType("text/html;charset=utf-8");(推荐使用!)
2 在响应体中设置 //String s =
// "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> 中文信息 ";
三:推荐方法
response.setContentType("text/html;charset=utf-8");
//设置mime类型,同时设置数据的编码方式,对服务器和客户端都有效!
响应体数据要使用流的形式进行发送
两种流的形式:
1 字节流 OutputStream out = response.getOutputStream();(任意类型。)
2 字符流 PrintWriter writer = response.getWriter();(一般的字符)
四:代码简单演示
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServeAndClientEecodeAndDncodeServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{response.setContentType("text/html;charset=utf-8");// 设置mime类型,同时设置数据的编码方式,对服务器和客户端都有效!// 响应要使用流的形式发送// 1 使用字节流形式发送// response.getOutputStream().write("使用字节流的形式发送!".getBytes("utf-8"));//字节流,字符串转换为字节流,是要指定编码的。// 2 使用字符流形式发送response.getWriter().write("使用字符流的形式发送!");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{doGet(request, response);}}
- 服务器端HttpServletResponse对象编码发送信息及浏览器端解码显示信息原理剖析
- 通过HttpServletResponse 将异常信息显示在网页上
- 在浏览器中显示Skype(Lync)信息及状态
- 编码解码过程中的信息丢失现象
- Base64编码原理及编码、解码实现
- 信息解码
- 信息解码
- 在Java中使用HttpURLConnection发送http客户端请求、服务器端返回信息、接受服务器端的信息
- 浏览器向服务端发送的消息信息
- Base64编码/解码原理及实现
- 服务器与浏览器信息传送编码
- 手机短信息SMS开发—编码,解码
- 手机短信息SMS开发—编码,解码
- 手机短信息SMS开发—编码和解码
- BCB 手机短信息SMS开发—编码,解码
- 搜狗在线测评题目信息编码与解码
- 显示当前浏览器头信息(HEADER)
- xdebug,在浏览器中显示日志信息
- bat批处理的简单应用
- db2 import 五种方式详解
- 世界名画陈列馆问题
- dom4j解析xml文件
- 发送AVC和AAC到流媒体服务器的流程图和设计结构
- 服务器端HttpServletResponse对象编码发送信息及浏览器端解码显示信息原理剖析
- dataDetectorTypes
- Android使用AsyncTask与Thread的区别(再用new Thread要舵手!)
- STM32学习笔记(1):通用定时器TIMx
- android genymotion教程之神坑
- C++primer plus第六版课后编程练习答案11.5和11.6
- Xcode7如何添加PCH文件以及解决添加后定义的宏使用不了的问题
- android Textview 使用之一:伸缩效果
- TCP中的RST标志(Reset)详解