黑马程序员技术交流社区
标题:
用Servlet来处理http请求并产生返回的HTML页面问题
[打印本页]
作者:
鲍霄霄
时间:
2012-7-22 12:29
标题:
用Servlet来处理http请求并产生返回的HTML页面问题
当用Servlet来处理http请求并产生返回的HTML页面时,如何使HTML页面中的中文
字符能够正常显示?
javax.servlet.http.HttpResponse类用于产生返回页面.通过HttpResponse定义的
方法getOutputStream()可以获得ServletOutputStream的实例,这样用户就可以利用
ServletOutputStream.write方法向输出流中写入返回页面的内容. 但是ServletOutputStream
使用的是缺省的编码方式,如果要使返回页面中的中文字 符能够正常显示,最好显示地指定所
用的字符编码方式. 通常需要构造一个 OutputStreamWriter , 例程如下:
public void doGet (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/html";
ServletOutputStream out = res.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(out,"GB2312";
ow.write("这是测试";
ow.flush();
ow.close();
}
作者:
于星星
时间:
2012-7-22 12:44
本帖最后由 于星星 于 2012-7-22 12:49 编辑
response.setContentType("text/html");
[color=Red]response.setCharacterEncoding("UTF-8"); //需要设置response的字符编码[/color]
request.setCharacterEncoding("UTf-8"); //这个是request的字符编码,当用户请求时如果有中文就会用这个编码
PrintWriter out = response.getWriter();
out.println("中国");
out.close();
复制代码
以上的字符编码,我这里用的是UTF-8,在serlvet中有两个特别重要的对象,一个是HttpServletRequest ,和HttpServletResponse这两个对象,分别为用户请求和服务器响应。用的请求的数据会封装在request域中,而服务器响应的数据存放在response中,楼主现在是想把一个中文数据,返回到页面,所以是服务器响应用户,这就需要设置response的字符编码。而下面的request设置的编码是用户请求服务器时候如果有中文,会用这里设置的编码。所以写上万无一失。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2