当前位置: 代码迷 >> JavaScript >> request.getRequestDispatcher("xx.jsp").forward(request, response);乱码挑动的思考
  详细解决方案

request.getRequestDispatcher("xx.jsp").forward(request, response);乱码挑动的思考

热度:683   发布时间:2012-09-21 15:47:26.0
request.getRequestDispatcher("xx.jsp").forward(request, response);乱码引发的思考

pageEncoding设置JSP源文件和响应正文中的字符集编码.
contentType设置JSP源文件的字符集编码和响应正文的MIME类型.

可见,pageEncoding和contentType都可以设置JSP源文件和响应正文中的字符集编码.但也有区别:

设置JSP源文件字符集时,优先级为   pageEncoding   >   contentType.都没有设置,默认ISO-8859-1.

设置响应输出的字符集时,优先级为   contentType   >   pageEncoding.都没有设置,默认ISO-8859-1;都设置了,以contentType为准.实际上,response.setContentType()就是根据contentType属性设置的

 

在servlet和action的时候

设置响应属性一定要记得加班方法开始的最前端

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

 request.setAttribute("json", obj2.toString());
   request.getRequestDispatcher("json.jsp").forward(request, response);

或者直接输出到页面中也可以

之前也要设置编码类型

//PrintWriter out = response.getWriter();
   // out.write(obj2.toString());

  相关解决方案