JSP使用Struts1提交中文表单时乱码,字符编码问题

最近写JSP大作业时发现把所有页面以及数据库都统一成utf-8后在写注册时数据库内插入的中文字符仍然是中文乱码,真的是快崩溃了。
后来想起来会不会是框架自身的问题,于是搜索到这个问题:
Struts框架直接把表单数据发送给了ActionForm,所以这里面没有对HttpRequestServlet进行SetCharacterEncoding,所以默认的编码方式仍然是按照ISO-8859-1。

解决方法:过滤器
创建一个CharacterEncodingFilter的过滤器来处理编码问题。
代码如下:

public class CharacterEncodingFilter implements Filter {

	public void destroy() {
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("utf-8");
		chain.doFilter(request, response);
	}

	public void init(FilterConfig arg0) throws ServletException {
	}

}

创建完过滤器后别忘了在配置文件中加入配置信息

  <filter>  
      <filter-name>characterEncoding</filter-name>  
      <filter-class>所放包名.CharacterEncodingFilter</filter-class>  
  </filter>  
  <filter-mapping>  
      <filter-name>characterEncoding</filter-name>  
      <url-pattern>/*</url-pattern>  
  </filter-mapping>

这样就能解决这个字符编码的问题了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值