struts控制器组件--actionServlet类

ActionServlet

ActionServlet类对应的类名为org.apche.struts.action.ActionServlet,它是struts框架的核心控制器组件,所有用户的请求都先由ActionServlet来处理,然后再由ActionServlet把请求转发给其他组件。Struts只允许一个应用中配置一个ActionServlet,但是可以将ActionServlet扩展。

Servlet容器在启动时,或者用户首次请求ActionServlet时加载ActionServlet类,在上述情况下,Servlet容器都会在ActionServlet被加载后立即执行它的init()方法。Init()过程如下:

1.       调用initInternal()方法,初始化struts框架内在的消息资源,如与系统日志相关的通知、警告和错误信息。

2.       调用initOther(),从web.xml文件中加载ActionServlet的初始化参数,如config 参数

3.       调用initServlet(),从web.xml文件中加载ActionServlet的URL映射信息。此外还会注册web.xml和struts配置文件所使用的DTD文件,这些DTD文件用来验证web.xml和struts配置文件的语法

4.       调用initModuleConfig(),加载并解析默认子应用模块的struts配置文件;创建ModuleConfig对象,把它存在ServletContext中

5.       调用intiModuleMessageResources(),加载并初始化默认子应用模块的消息资源,创建MessageResources对象,把它存在ServletContext中

6.       调用initModuleDataSources()方法,加载并初始化默认子应用模块的数据源。如果没有在struts配置文件中没有定义<data-sources>元素,就忽略这一流程

7.       调用initModulePlugins(),加载并初始化默认子应用模块的所有插件

8.       当默认子应用模块被成功初始化后,如果应用还包括其他子应用模块,将重复流程4-7,分别对其他子应用模块进行初始化。

扩展ActionServlet类,定义如下的类:

package sample;

public class ExtendedActionServlet extends ActionServlet {

        public void init() throws ServletException {

               super.init();

               //do some operations

               ……………

        }

}

扩展完类后,还应该在web.xml文件中如下配置:

<servlet>

        <servlet-name>sample</servlet-name>

        <servlet-class>sample.ExtendedActionServlet</servlet-class>

</servlet>

 

<servlet-mapping>

       <servlet-name>sample</servlet-name>

       <url-pattern>/action/*<url-pattern>

//上面的/action/*表示负责处理所有以/action为前缀的URL,后面的/表示转义

<servlet-mapping>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值