jsp页面用文本框传递中文用户名到ActionForm再传到Action中但是action得到的是乱码,以前用Struts+Hibernate的时候没有乱码问题,然后我又添加了一个Spring框架,action由Spring管理,出现了乱码问题,有没有个一劳永逸的办法,整个项目都不会再出现乱码问题了?
解决方案 »
- 【jsp】jsp中java代码段中如何获取本页面<input>标签的值
- mybatis一对一关联插入操作的问题
- MD weblogic,大家帮我看看这个部署问题,在网上能查到的招都用上了,还是不行
- 作为JAVA程序员的我怎么办?
- 一个JSP小问题,请大家帮帮忙,在线等,万分火急
- 在JAVAScript中
- 那位大侠,帮忙解答一下!
- 小弟在深圳搞JAVA。希望与CSDN上的JAVA同仁交个朋友!!!我的QQ:402697907
- 再次请教JDBC的有关问题??????紧急!!!!!!!!!!!!11
- 如何调用Oracle的包取的滚动的可编辑的游标?
- jxl中WritableCellFormat的问题
- my eclipse 8.5中必须在WebRoot里建立JSP页面吗?小弟初学JSP,在线等候大虾们!
例如:页面上是utf-8,响应的时候就设成utf-8
编码不一样的时候为出现乱码
package com.lore.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;/*
* 此过滤器用于设置支持系统的中文编码,为了支持用户的中文输入
* **/public class EncodingFilter implements Filter {
private FilterConfig filterconfig;
private String encoding = null; public void destroy() { } public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
if (arg0.getCharacterEncoding() == null) { String encod = this.getEncoding();
if (encod != null) {
arg0.setCharacterEncoding(encod); }
}
arg1.setCharacterEncoding(encoding);
arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ServletException {
this.filterconfig = arg0;
this.encoding = this.filterconfig.getInitParameter("encoding"); } public String getEncoding() {
return this.encoding;
}}
web.xml配置文件的代码
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.lore.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你可以试试,应该有这个过滤器,就没有乱码问题了
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>web.xml配置以上代码,所有编码都使用UTF-8,包括项目编码,JSP文件,配置文件等,绝对不会有乱码问题。
<!-- spring自带的字符集处理filter --> <filter>
<filter-name>ChinaFiler</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>/*红色部分的编码方式随你,可以是GBK也可以是UTF-8关键在于你自己的设置*/</init-param>
</filter><filter-mapping>
<filter-name>ChinaFiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>