response中setCharacterEncoding和setContentType的区别

package day08;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 案例【content-type】-- 服务器发送给浏览器的数据类型和数据编码格式
 * @author Administrator
 *
 */
public class ResponseDemo04 extends HttpServlet {
	
	private static final long serialVersionUID = -1839403652123389047L;
	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		/*
		 * response.setContentType("text/html;charset=utf-8");
		 * 等于
		 * response.setHeader("content-type", "text/html");
		 * response.setCharacterEncoding("utf-8");
		 * 两句
		 * 
		 * 
		 * 但是response.setContentType("text/html;charset=utf-8");
		 * 中的charset有比setEncoding多一个作用:
		 * 		不仅能设置输出数据的编码;还能告诉浏览器自适应当前的编码
		 */
		// 所有这种set的前面的引号内的都是需要设置的头的名字name,后面是需要设置的新的值value
		response.setHeader("content-type", "text/html;charset=utf-8");
		// 等价于上面的setContentType("text/html;charset=utf-8");
		/*
		 * setContentType中的text/html意思就是将我的内容按照html的格式去读出来
		 * 我们也可以通过response的getWriter去输出写出特定的html的格式	
		 */
		
		/*
		 * 因为xml和html本源都是相同的,所以这里设置浏览器的解析的格式的时候
		 * 也可以设置使用xml的
		 */
		response.setContentType("text/xml;charset=utf-8");
		/*
		 * 注意:一定要写服务器支持的数据类型,如果写服务器不支持的类型,就会报错
		 * 
		 * text/html
		 * text/xml
		 * image/gif
		 * image/jpg
		 * 等等
		 */
		response.getWriter().write("<html><head><title>this is a title</title></head><body>this is a body</body></html>");
		
		
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
	}

}

原文地址:https://www.cnblogs.com/mzywucai/p/11053527.html