utf8乱码解决方案[适合tomcat部署的jsp应用]
2011-08-09 19:18
375 查看
1. java类: CharacterEncodingFilter
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
private String encoding = "UTF-8";
private boolean forceEncoding = true;
/**
* Set the encoding to use for requests. This encoding will be
* passed into a ServletRequest.setCharacterEncoding call.
* <p>Whether this encoding will override existing request
* encodings depends on the "forceEncoding" flag.
*/
public void setEncoding(String encoding) {
this.encoding = encoding;
}
/**
* Set whether the encoding of this filter should override existing
* request encodings. Default is "false", i.e. do not modify encoding
* if ServletRequest.getCharacterEncoding returns a non-null value.
*/
public void setForceEncoding(boolean forceEncoding) {
this.forceEncoding = forceEncoding;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
String force = filterConfig.getInitParameter("forceEncoding");
this.forceEncoding = (force == null) || Boolean.valueOf(force).booleanValue() ;
}
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
if (this.forceEncoding || servletRequest.getCharacterEncoding() == null) {
servletRequest.setCharacterEncoding(this.encoding);
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
}
}
2. 在web.xml配置文件里加Filters Configurations
<!-- Filters Configurations -->
<filter>
<filter-name>CHARACTER_ENCODING</filter-name>
<filter-class>
common.encoding.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CHARACTER_ENCODING</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.数据库建立为UTF-8格式
4.项目右键属性为UTF-8格式
5.所有页面申明为UTF-8
6.JDBC URL设为:UTF-8
jdbc:mysql://localhost:3306/databaseuse?useUnicode=true&characterEncoding=utf-8
7.数据库Driver选择UTF-8格式
8.Tomcat编码改成UTF-8
在server.xml里面增加URIEncoding="UTF-8"
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
import javax.servlet.*;
import java.io.IOException;
public class CharacterEncodingFilter implements Filter {
private String encoding = "UTF-8";
private boolean forceEncoding = true;
/**
* Set the encoding to use for requests. This encoding will be
* passed into a ServletRequest.setCharacterEncoding call.
* <p>Whether this encoding will override existing request
* encodings depends on the "forceEncoding" flag.
*/
public void setEncoding(String encoding) {
this.encoding = encoding;
}
/**
* Set whether the encoding of this filter should override existing
* request encodings. Default is "false", i.e. do not modify encoding
* if ServletRequest.getCharacterEncoding returns a non-null value.
*/
public void setForceEncoding(boolean forceEncoding) {
this.forceEncoding = forceEncoding;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
String force = filterConfig.getInitParameter("forceEncoding");
this.forceEncoding = (force == null) || Boolean.valueOf(force).booleanValue() ;
}
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
if (this.forceEncoding || servletRequest.getCharacterEncoding() == null) {
servletRequest.setCharacterEncoding(this.encoding);
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
}
}
2. 在web.xml配置文件里加Filters Configurations
<!-- Filters Configurations -->
<filter>
<filter-name>CHARACTER_ENCODING</filter-name>
<filter-class>
common.encoding.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CHARACTER_ENCODING</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.数据库建立为UTF-8格式
4.项目右键属性为UTF-8格式
5.所有页面申明为UTF-8
6.JDBC URL设为:UTF-8
jdbc:mysql://localhost:3306/databaseuse?useUnicode=true&characterEncoding=utf-8
7.数据库Driver选择UTF-8格式
8.Tomcat编码改成UTF-8
在server.xml里面增加URIEncoding="UTF-8"
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
相关文章推荐
- 使用myeclipse插入数据到mysql 出现中文乱码|utf8乱码解决方案[适合tomcat部署的jsp应用]
- utf8乱码解决方案[适合tomcat部署的jsp应用]
- utf8乱码解决方案[适合tomcat部署的jsp应用]
- JSP数据库Tomcat 产生乱码解决方案总结及原因(转二)
- tomcat 部署spring工程乱码解决方案
- java;jsp;tomcat;mysql;hibernate;编码中文乱码全面解决方案
- Tomcat部署JSP网站(部署web应用?)
- JSP数据库Tomcat 产生乱码解决方案总结及原因(转三)
- Tomcat中部署后JspFactory报异常的解决方案
- Tomcat 中 jsp 中文乱码显示处理解决方案
- 页面编码正常,tomcat 部署访问乱码解决方案
- tomcat下的web应用部署到weblogic上乱码问题
- windows下在Eclipse中启动的tomcat没有乱码,单独部署到tomcat下乱码解决方案
- java;jsp;tomcat;mysql;hibernate;j2ee 编码中文乱码全面解决方案
- 对于tomcat发布本地jsp中文显示乱码解决方案
- windows下在Eclipse中启动的tomcat没有乱码,单独部署到tomcat下乱码解决方案
- java;jsp;tomcat;mysql;hibernate;编码中文乱码全面解决方案
- JSP中文乱码解决方案-Tomcat5.0版
- tomcat 中部署的应用响应json数据乱码解决办法
- JSP中文乱码简析和以tomcat为服务器乱码的解决方案