神秘的 J2ee 殿堂

·古之学者必有师·做学者亦要做师者·FIGHTING·

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文件中加载ActionServletURL映射信息。此外还会注册web.xml
struts
配置文件所使用的DTD文件,这些DTD文件用来验证web.xmlstruts配置文件的语法
  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>


<>




posted on 2007-10-11 10:19 月芽儿 阅读(387) 评论(0)  编辑  收藏 所属分类: J2EE学习摘录


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(2)

随笔分类

随笔档案

相册

搜索

最新评论

阅读排行榜

评论排行榜