用tomcat自带的字符集转换filter。
解决方案 »
- tomcat启动端口异常问题
- 采用application/vnd.ms-excel导出execl调整页面大小并打印
- jsf的UI组件问题
- Hibernate新手问题:将string类型的映射为hbm文件的id时,应该使用哪种<generator class=> ??而使得在添加操作时可以给出要添加的值?
- 对JSP, STRUCTS, JSF, SPRING, AOP, IOC的讨论...
- cookie的初级问题!!!
- 请问个位大佬,头痛问题
- 建立一个对象数据库软件[开源项目],有意者请进
- 如何测试自己写的数据库连接池的效率问题?
- 请问生成xml文件,除了用transformer还有什么方法呀???
- 关于在struts框架中传递变量值的问题(从jsp页面传到Action类中)
- 请问我的Tomcat怎么装不上,
二、提交的数据乱码 现象:通过表单提交的数据出现乱码。 原因:原因未明。可能是Tomcat在接收到请求后,并没有能够根据request中的信息提前正确的编码方式。 解决:可以添加一个设置字符集的Filter。package filters;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;
import javax.servlet.UnavailableException;public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true; public void destroy() {
this.encoding = null;
this.filterConfig = null;
}public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException { // Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
} // Pass control on to the next filter
chain.doFilter(request, response);}public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;}protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}} 配置web.xml<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter><filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
可是下面的地址在哪呀
可是现在还是有歌问题解决不了,那就是html里的中文还是显示乱码(注意:我已经在其中加了这样的语句:<meta http-equiv="content-type" content="text/html; charset=GB2312">)
.请问这个问题该怎么解决啊?
谢谢