Chinaunix首页 | 论坛 | 博客
  • 博客访问: 565573
  • 博文数量: 136
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1343
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 23:18
文章分类

全部博文(136)

文章存档

2011年(28)

2009年(60)

2008年(48)

我的朋友

分类: Java

2009-03-31 15:27:44

  所有MVC框架所需要使用核心控制器拦截所有用户的请求,对于struts而言,核心控制器就是ActionServlet,可以让其拦截所有用户请求。但为了解决系统的中文编码问题,系统扩展了ActionServlet,重写了原来的process,在该方法中设置采用何种编码方式解析请求参数。
下面是一个扩展后的ActionServlet的代码
 

package org.yeeku.action.base;

import org.apache.struts.action.ActionServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
public class MyActionServlet extends org.apache.struts.action.ActionServlet
{
    protected void process(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException
    {
        request.setCharacterEncoding("GBK");
        super.process(request, response);
    }
}

 

重写了ActionServlet类后,必须将其配置在web.xml文件中,并让其拦截所有的用户请求,该核心控制器的配置片段如下:

 

<servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.yeeku.action.base.MyActionServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

 

在web.xml文件中增加了配置后,就可以让ActionServlet拦截所有用户的请求,并将请求转入Struts体系中

阅读(1434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~