解决Struts中文乱码的方法

方法1).创建过滤器解决中文乱码 

1.新建一个filter包,创建一个子类(如CharsetFilter.java)继承自HttpServlet类并实现Filter接口类。 

2.类方法: 

……………… 

public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException { 

     // TODO Auto-generated method stub  

    request.setCharacterEncoding("utf-8");  

    chain.doFilter(request, response);

 }  

……………… 

3.在web.xml中进行部署 

………………

 <filter>   

    <filter-name>charset</filter-name>   

    <filter-class>com.xaccp.filter.CharsetFilter</filter-class>   

</filter>  

<filter-mapping>   

    <filter-name>charset</filter-name>   

    <url-pattern>*.do</url-pattern>  

</filter-mapping> 

………………

至此,利用过滤器将struts中的中文乱码问题就完全解决了,是不是很easy呢……^_^

方法2).定制Struts控制器组件解决中文乱码   

如果要定制ActionServlet的行为规则,其实应从RequestProcessor这个RequestProcessor类着手。要开发自己的RequestProcessor类以实现定制的控制逻辑,应遵循以下步骤:   

1) 创建一个子类继承org.apache.struts.action.RequestProcessor类,在该子类中显式定义(或使用缺省的)无参、方法体为空的构造方法。   

2) 重写所需要的方法,加入定制功能。   

3) 将该子类编译后得到的class文件保存到Struts应用程序的WEB-INF/class/目录下   

4) 修改配置文件struts-config.xml,在其中加入一个名为<controller>的元素,用以指定客户定制的RequestProcessor类。

具体如下: 

1)创建子类MyProc.java,重写RequestProcessor类下的processorProcessor()方法

package com.fmzrt.myproc;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.RequestProcessor;

public class MyProc extends RequestProcessor {  

protected boolean processorProcessor(HttpServletRequest request, HttpServletResponse response)   {  

    try {   

        request.setCharacterEncoding("utf-8");  

    } catch (UnsupportedEncodingException e) {   

        // TODO Auto-generated catch block   

        e.printStackTrace();  

    }  

     return true; 

    }

2)修改配置文件struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

 <struts-config> 

     ………………  

   <controller processorClass="com.fmzrt.myproc.MyProc"></controller>   

     ………………

</struts-config>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值