Response对象通过字节流输出中文内容

来源:互联网 发布:ubuntu 系统监视器 编辑:程序博客网 时间:2024/06/11 06:59

Response对象通过字节流输出中文内容:

第一种方法:

ResponseDemo1.java文件:

package com.neu;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ResponseDemo1 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {test1(response);}//解决方案一:更改浏览器的码表(不建议)//解决方案二(不建议):向客户端输出一个<meta>标签,模拟了响应消息头:<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>//解决方案三(建议):向客户端输出响应消息头:response.setHeader("Content-Type", "text/html;charset=UTF-8");//解决方案四(建议):向客户端输出响应消息头response.setContentType("text/html;charset=UTF-8");//字节流输出数据查UTF-8private void test2(HttpServletResponse response) throws IOException{String data = "不见了远处的青山";response.setContentType("text/html;charset=UTF-8");ServletOutputStream out = response.getOutputStream();out.write(data.getBytes("UTF-8"));//默认情况下:浏览器是乱码的(他默认查GBK)}//字节流输出数据查本地码表private void test1(HttpServletResponse response) throws IOException {String data = "不见了远处的青山";ServletOutputStream out = response.getOutputStream();out.write(data.getBytes());//String:  getBytes()查本地默认的码表GBK getBytes(String charset)查指定码表}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
运行:http:localhost:8080/Response/servlet/ResponseDemo1

结果:不见了远处的青山

第二种方法:

ResponseDemo2.java文件:

运行:http:localhost:8080/Response/servlet/ResponseDemo1

package com.neu;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 字符流输出中文数据 * @author wym * */public class ResponseDemo2 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {test1(response);}private void test1(HttpServletResponse response) throws IOException {String data = "幸福是什么?";//改变字符流查的码表response.setCharacterEncoding("UTF-8");//告知客户端用UTF-8进行解码response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//HttpServletResponse的实例由Tomcat服务器提供,Tomcat6.x默认查ISO-8859-1编码;Tomcat8.x默认编码为UTF-8out.write(data);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

运行:http:localhost:8080/Response/servlet/ResponseDemo2

结果:幸福是什么?

0 0