扩展Struts,一劳永逸实现转码

以下代码是我前面Struts+Spring+Hibernate例中的一部分,当然也适合独立使用.好吧,开始.

我们写一个类,继承自ActionServlet(Struts的控制器):

 

package  com.zgh.struts;

import  java.io.IOException;

import  javax.servlet.ServletException;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.ActionServlet;

public   class  MyActionServlet  extends  ActionServlet  {
    
private static final String ENCODING="GBK";
    
private String encoding;
    
public void init() throws ServletException {
        
super.init();
        String tmp
=getInitParameter("ENCODING");
        System.out.println(
"encoding="+tmp);
        
if(null!=tmp&&!"".equals(tmp)){
            encoding
=tmp;
        }
else{
            encoding
=ENCODING;
        }

    }

    
public String getEncoding(){
        
return encoding;
    }

    
protected void process(HttpServletRequest arg0, HttpServletResponse arg1) throws IOException, ServletException {
        arg0.setCharacterEncoding(getEncoding());
        
super.process(arg0, arg1);
    }


}

在上面例子中,从web.xml中读取编码格式(在init方法里面,必需要先调用父类的init),如果没有就用默认的。在process中设置编码格式。

然后我们修改web.xml(前面的Struts+Spring+Hibernate例子中的差不多,稍做修改):

 

<? xml version="1.0" encoding="UTF-8" ?>
< web-app  xmlns ="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  version ="2.4"  xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
  
< servlet >
    
< servlet-name > action </ servlet-name >
    
< servlet-class > com.zgh.struts.MyActionServlet </ servlet-class >
    
< init-param >
      
< param-name > config </ param-name >
      
< param-value > /WEB-INF/struts-config.xml </ param-value >
    
</ init-param >
    
< init-param >
      
< param-name > debug </ param-name >
      
< param-value > 3 </ param-value >
    
</ init-param >
    
< init-param >
      
< param-name > detail </ param-name >
      
< param-value > 3 </ param-value >
    
</ init-param >
    
< init-param >
      
< param-name > ENCODING </ param-name >
      
< param-value > GBK </ param-value >
    
</ init-param >
    
< load-on-startup > 0 </ load-on-startup >
  
</ servlet >
  
< servlet-mapping >
    
< servlet-name > action </ servlet-name >
    
< url-pattern > *.do </ url-pattern >
  
</ servlet-mapping >
</ web-app >

 

在这里我们配置的Servlet就是我们那个MyActionServlet了,给他添加了个参数ENCODING,在这里设置编码格式--GBK。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值