MySQL数据库,和Eclipse中的所有设置字符编码的地方都设置成UTF-8
然后利用MySQL的设置向导重新设置MySQL的默认编码也是UTF-8即可
Struts2,或者说JSP的表单乱码,分为get和post方法
get方法
在tomcat的conf\server.xml中第一个Connector中加入属性URIEncoding="UTF-8"
post方法
添加一个CharacterEncodingFilter拦截器
/*
$Id$
Copyright (C) 2003-2009 Virginia Tech.
All rights reserved.
SEE LICENSE FOR MORE INFORMATION
Author: Middleware Services
Email: middleware@vt.edu
Version: $Revision$
Updated: $Date$
*/
package servlet.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* Sets the request and/or response character encoding based on the presence of
* either or both of the following init params, {@link #REQUEST_CHARSET_NAME}
* {@link #RESPONSE_CHARSET_NAME}.
*
* <p>
* <strong>NOTE:</strong> this filter should be as close to the beginning of the
* filter chain as possible. Any filters that obtain request parameters, e.g.
* <code>request.getParameter(...)</code>, prior to setting the character set
* via this filter will use the platform default character set.
* </p>
*
* @author Middleware Services
* @version $Revision$
*/
public class CharacterEncodingFilter implements Filter {
/**
* Name of init param for setting request character encoding. The value
* should be a valid Java character set name, e.g. UTF-8.
*/
public static final String REQUEST_CHARSET_NAME = "requestCharsetName";
/**
* Name of init param for setting response character encoding. The value
* should be a valid Java character set name, e.g. UTF-8.
*/
public static final String RESPONSE_CHARSET_NAME = "responseCharsetName";
/** Request character set name. */
private String requestCharsetName;
/** Response character set name. */
private String responseCharsetName;
/** {@inheritDoc}. */
public void init(final FilterConfig filterConfig) throws ServletException {
if (filterConfig.getInitParameter(REQUEST_CHARSET_NAME) != null) {
requestCharsetName = filterConfig.getInitParameter(REQUEST_CHARSET_NAME);
}
if (filterConfig.getInitParameter(RESPONSE_CHARSET_NAME) != null) {
responseCharsetName = filterConfig.getInitParameter(RESPONSE_CHARSET_NAME);
}
}
/** {@inheritDoc}. */
public void doFilter(final ServletRequest request,
final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
if (requestCharsetName != null) {
request.setCharacterEncoding(requestCharsetName);
}
if (responseCharsetName != null) {
response.setCharacterEncoding(responseCharsetName);
}
chain.doFilter(request, response);
}
/** {@inheritDoc}. */
public void destroy() {
}
}
然后在web.xml里加入(加在其他拦截器前面)
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>servlet.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>requestCharsetName</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>responseCharsetName</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
即可
分享到:
相关推荐
Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定
显示界面,JSP 2.0 JAVA容器:Tomcat 5.X MVC构架:Struts 1.2 ORM工具:Hibernate 3 数据库:MySQL 5.0 编译IDE:MyEclipse 5.0
struts中文乱码问题解决详细步骤(两种方法)
在struts2中解决页面中出现的乱码问题,写在web.xml中
struts2+tomcat+mysql实现web聊天室 主要实现了登陆注册,错误检测,主题创建显示,在线人数统计,聊天等功能
Struts2乱码解决办法,个人测试有效
解决中文乱码的问题
利用STRUTS框架将数据提取显示在页面上.
Struts上传,已经处理好乱码问题Struts上传,已经处理好乱码问题
struts2中存在中文乱码的问题解决方 中文乱码,首先要区分是页面乱码、action乱码,还是数据库乱码。 大致的原理是java使用unicode编码-->window使用gbk(gb2312的扩展集)--mysql默认使用utf-8(unicode的一种编码...
welogic struts2文件下载中文件名乱码:在tomcat中是好的哦
struts2.2.1文件下载及中文乱码问题解决.pdf
struts2和tomcat使用struts2和tomcat使用
关于StrutsPrepareAndExecuteFilter最新的过滤器,在Struts.xml定义常量<constant name="struts.i18n.encoding" value="UTF-8"/>...关于Struts2各个版本、各种过滤器,用get方式提交都方法都无法解决的中文乱码问题。
解决Struts2和servlet的中文乱码问题
struts2 拦截器 解决 请求乱码 和 输出乱码 java
struts 中文乱码问题解决
奇怪的struts2的中文乱码问题及解决.docx
Tomcat+MySql+Struts的中文问题