免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1109 | 回复: 0
打印 上一主题 下一主题

struct 之 ActionServlet [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-07 23:07 |只看该作者 |倒序浏览

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配置文件中没有定义元素,就忽略这一流程
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文件中如下配置:
        sample
        sample.ExtendedActionServlet

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


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20117/showart_255004.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP