struts中文显示问题
原先使用struts会有很多乱码,后来发现在action处理处理数据的时候没有设置好编码,我们需要确认如下的编码设置。这里我们使用utf-8。
1. 在每个页面设置request和response的charset,比如
2. 设置数据库的编码是utf-8。
我们设置action中的编码也是utf-8,貌似会出现说什么,不能设置这个编码,因为之前已经读了这个request,所以我们要重载 ActionServlet的process方法,如
然后需要在web.xml中设置调用的ActionServlet,修改
中文就这样解决了。: )
1. 在每个页面设置request和response的charset,比如
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
2. 设置数据库的编码是utf-8。
我们设置action中的编码也是utf-8,貌似会出现说什么,不能设置这个编码,因为之前已经读了这个request,所以我们要重载 ActionServlet的process方法,如
1 public class MyActionServlet extends ActionServlet
2 {
3 protected void process(HttpServletRequest request, HttpServletResponse response)
4 throws java.io.IOException, javax.servlet.ServletException
5 {
6 request.setCharacterEncoding("utf-8");
7 super.process(request, response);
8 }
9 }
2 {
3 protected void process(HttpServletRequest request, HttpServletResponse response)
4 throws java.io.IOException, javax.servlet.ServletException
5 {
6 request.setCharacterEncoding("utf-8");
7 super.process(request, response);
8 }
9 }
<servlet>
<servlet-name>action</servlet-name>
<!--servlet-class>org.apache.struts.action.ActionServlet</servlet-class-->
<servlet-class>servlet.MyActionServlet</servlet-class>
这里省略掉了。
</servlet>
<servlet-name>action</servlet-name>
<!--servlet-class>org.apache.struts.action.ActionServlet</servlet-class-->
<servlet-class>servlet.MyActionServlet</servlet-class>
这里省略掉了。
</servlet>