/
practiceAboutTheWebResponseHeader
51 lines (39 loc) · 2.01 KB
/
practiceAboutTheWebResponseHeader
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 内容一共包含四种UTF-8编码输出方式, 具体请见鄙人博客:http://blog.csdn.net/striner/article/details/78841540
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.ServletContext;
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 Service extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//服务器中默认编码为ISO-8859-1,不支持中文(tomcat规定)
/*告诉服务器应用使用UTF-8解析文本*/
response.setCharacterEncoding("UTF-8");
/*客户端编码设置*/
PrintWriter out = response.getWriter(); //得到一个字符输出流
// 法一
out.write("<html><head> <meta charset='UTF-8'></head><body>测试一</body></html>"); //向客户端相应文本内容
// 法二
response.setHeader("content-type", "text/html;charset=UTF-8");
out.write("测试二"); //向客户端相应文本内容
/* ------------------------------------------------------------- */
/*告诉服务器应用使用UTF-8解析文本,告诉客户端要使用什么编码*/
response.setContentType("text/html; charset=UTF-8"); //等同于以上response.setCharacterEncoding("UTF-8")+...charset=UTF-8
/*测试内容输出*/
// 法一
PrintWriter out = response.getWriter(); //得到一个字符输出流
out.write("测试三");
// 法二
ServletOutputStream sos = response.getOutputStream();
sos.write("测试四".getBytes()); //字符串后加getBytes()将String编码为byte序列这种方式也不会乱码.
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}