第05讲控制器组件及Action类.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第05讲控制器组件及Action类

第5讲 Struts常用控制器组件及Action类 教学目标: 1.主要了解Struts控制器组件组成、任务及需求; 2.掌握ActionServlet类的作用及初始过程,以及RequestProcessor类; 3.掌握Action的实现过程和execute()方法,以及ActionForward类的实例及配置创建。 一.Struts常用控制器组件组成、任务及需求 1.组成 ◆ ActionServlet: ◆ RequestProcessor: ◆ Action组件: ◆ HttpServlet类: 2.Struts的控制器组件主要任务 1)接受用户请求 2)根据用户请求,调用合适的模型组件来执行相应的业务逻辑。 3)获取业务逻辑执行结果。 4)根据当前状态及业务逻辑执行结果,选合适的视图组件返回给用户。 5)MVC设计模式使用Struts的需求 ◆控制器在用户输入数据和模型层之间充当媒介/翻译者的角色; ◆由于所有的请求都经过控制器的过滤,提高每个组件的相对独立性。 二.ActionServlet类 1.作用 所有的用户请求都先由ActionServlet来处理,然后把请求转发给其他组件或类; 在应用的生命周期中,仅创建ActionServlet类的一个实例,但这个AtionServlet实例可以同时响应多个用户请求。 2.Struts初始化过程 Struts初始化过程取决于在web.xml文件中配置的初始化参数,servlet容器在首次启动或servlet的第一次请求到达时加载Struts ActionServlet,其init()方法被调用,并且必须在servlet处理任何请求之前完成: 1)调用initInternal()方法 初始化struts框架内在的消息资源,与系统相关的通知、警告和错误输出到日志。 2)调用ininOther()方法 从web.xml文件中加载ActionServlet的初始化信息,如config、debug等参数。 3)调用initServlet()方法 从web.xml文件中加载ActionServlet的URL映射信息,此外还会注册web.xml和Struts配置文件所用的DTD文件用来验证web.xml和Struts配置文件的语法 4)调用initModuleConfig()方法 加载并解析默认子应用模块的Struts配置文件;创建ModuleConfig对象,把它存储在ServletContext中。 5)调用initModuleMessageResoruces()方法 加载并初始化默认子应用模块的消息资源;创建MessageResources()方法,把它存储在ServletContext中。 6)调用initModuleDataSources()方法 加载并初始化默认子应用模块的数据源。如果在Struts配置文件中没有定义data-sources,忽略这一流程。 7)调用initModulePlugins()方法 加载并初始化默认子应用模块的所有插件。 8)当默认子应用模块被成功初始化后,如果还包括其他子应用模块,将重复流程4-7,分别对其他子应用模块进行初始化 3.Process()方法 当ActionServlet实例通过doGet()或doPost()方法处理用户请求时, 实际上都是调用process()方法具体处理请求: protected void process(HttpServletRequest request,HttpServletResponse response) throw IOException, ServletException {    ModuleUtils.getInstance().selectModule(request, getServletContext());    getRequestProcessor(getModuleConfig(request)).process(request, response); } 说明: selectModule()选择负责处理当前请求的子应用模块,再把与子应用模块相关的ModuleConfig和MessageResources对象存储倒request范围中 。 getMouduleConfig()取得当前应用模块的配置,以达到处理用户请求。 三.RequestProcessor类 1.ActionServlet实例对应多个用户 在应用的生命周期中,仅创建ActionServlet类的一个实例,但这个Ation

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档