黑马程序员_解决Servlet中文乱码

来源:互联网 发布:影视美术设计考研知乎 编辑:程序博客网 时间:2024/06/10 07:20

------- android培训、java培训、期待与您交流! ----------

默认情况下Servlet向浏览器发送的编码为西欧语言ISO-8859-1,不包含中文,所以如果服务器端向浏览器发送的内容中包含中文就会显示为“?”乱码,解决方法有很多,如下:

各种编码一览

A. JSP/Servlet都有的编码设置

1. request.setCharacterEncoding("UTF-8")

2. response.setCharacterEncoding("UTF-8")

3. response.setContentType("text/html; charset=UTF-8");

4. response.setHeader("Content-Type", "text/html; charset=UTF-8");

B. JSP专有的编码设置

1. <%@ page pageEncoding="UTF-8" %>

2. <%@ page contentType="text/html; charset=UTF-8" %>

C. HTML页面中的编码设置

1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

但是要注意的是response.setContentType("text/html;charset=gbk");设置编码的语句必须放在PrintWriter out = response.getWriter();语句前面,否则还是起不到设置编码的效果。

示例:

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;/** * 处理get post的多种简单实用的方法 */public class HelloWorldServlet extends HttpServlet {@Override//重写service方法不用单独调用get post等方法来处理浏览器发来的请求了protected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=gbk");PrintWriter out = response.getWriter();out.println("<html><head></head><body><center><font color='red'>中文HelloWorldServlet!</font></center></body></html>");out.flush();out.close();}/*@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//这样写的好处是减少了代码量,使代码更容易被维护,代码只需修改一处doGet(req, resp);}@Override//只需要在get post等任意一个方法中写处理客户端请求的方法,其它地方直接调用就可以protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {PrintWriter out = response.getWriter();out.println("<html><head></head><body><center><font color='red'>HelloWorldServlet!</font></center></body></html>");out.flush();out.close();}*/private static final long serialVersionUID = 1L;}

参考资料

http://blog.csdn.net/superbeck/archive/2010/03/05/5347815.aspx

http://blog.csdn.net/yjg428/article/details/5635661


原创粉丝点击