* 以字节流输出
response.getOutputStream()
//1. 指定浏览器看这份数据使用的码表
response.setHeader("Content-Type", "text/html;charset=UTF-8");
//2. 指定输出的中文用的码表
response.getOutputStream().write("计算机".getBytes());
###不管是字节流还是字符流,直接使用一行代码就可以了。
response.setContentType("text/html;charset=UTF-8");
然后在写数据即可。
Response01:
package com.yuming.servlet;
import java.io.IOException;
import java.nio.charset.Charset;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Response01
*/
public class Response01 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//test01(response);
//test02(response);
//响应的数据中有中文,那么有可能出现中文乱码
//2. 以字节流输出 response.getOutputStream()方式
//以字节流输出
/*
* 如果想让服务器端出去的中文,在客户端能够正常显示。只要确保一点。
*
* 出去的时候用的编码 , 和 客户端看这份数据用的编码 是一样的。
*
* 默认情况下getOutputStream 输出使用的是UTF-8的码表 。 如果想指定具体的编码,可以在获取byte数组的时候,指定。
*
*
*
*/
//设置响应的数据类型是html文本,并且告知浏览器,使用UTF-8 来编码。
response.setContentType("text/html;charset=UTF-8");
//String这个类里面, getBytes()方法使用的码表,是UTF-8, 跟tomcat的默认码表没关系。 tomcat iso-8859-1
String csn = Charset.defaultCharset().name();
System.out.println("默认的String里面的getBytes方法使用的码表是: "+ csn);
//1. 指定浏览器看这份数据使用的码表
// response.setHeader("Content-Type", "text/html;charset=UTF-8");
//2. 指定输出的中文用的码表
response.getOutputStream().write("计算机".getBytes());
}
private void test02(HttpServletResponse response) throws IOException {
//响应的数据中有中文,那么有可能出现中文乱码
//1.以字符流输出 response.getWriter()方式
//1.1 (设置输出的编码格式)指定输出到客户端的时候,这些文字使用UTF-8编码
response.setCharacterEncoding("UTF-8");
//2.直接规定浏览器看这份数据的时候,使用什么编码来看。
response.setHeader("Content-Type", "text/html; charset=UTF-8");
response.getWriter().write("北京");
}
private void test01(HttpServletResponse response) throws IOException {
//1.以字符流的方式响应数据
//response.getWriter().write("<h2>hello response1111111</h2>");
//2.以字节流的方式响应数据
response.getOutputStream().write("<h2>hello response222222222</h2>".getBytes());
//3.设置当前请求的处理状态码
//response.setStatus(0, "");
//4.设置一个头
//response.setHeader(name, value);
//5.设置响应的内容类型,以及编码
//response.setContentType(type);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}