- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java框架技术第6章 业务组件ActionServlet和Action
第6章 业务组件ActionServlet和Action 本课教学内容 6.1 核心控制器ActionServlet 6.2 RequestProcessor类 6.3 Action类 6.4 Struts1框架内置的常用Action类 6.1 核心控制器ActionServlet ActionServlet简介 ActionServlet的主要功能是: 接收用户的请求; 根据用户的不同请求,调用相应的Action进行业务逻辑处理; 从模型层(如果需要)获得处理后的数据并传给相应的视图层; 选择合适的视图进行响应,并显示给用户。 所有基于Struts1框架的用户请求首先都提交给核心控制器ActionServlet来进行处理,然后再由它分配之后的工作。 6.1 核心控制器ActionServlet init()方法 当Web服务器加载ActionServlet类后就立即执行它的init()方法进行初始化,做好接收并处理用户请求的准备。 Struts1框架的版本不同,ActionServlet类中的init()方法完成初始化的工作也可能不同,这里给出的是Struts1.2版本中的init()方法的初始化流程。 6.1 核心控制器ActionServlet init()方法 初始化流程如下: (1)调用initInternal()方法,用于初始化Struts1框架内在的消息资源。 (2)调用initOther()方法,根据web.xml文件加载ActionServlet的初始化参数。 (3)调用initServlet()方法,根据web.xml文件加载ActionServlet的URL映射信息并注册DTD文件。 下面是根据需要进行模块初始化(Initialize modules as needed)。 (4)调用initModuleConfig()方法,加载并解析默认子应用模块的Struts1框架的配置文件,并创建ModuleConfig对象。 6.1 核心控制器ActionServlet init()方法 初始化流程如下: (5)调用initModuleMessageResource()方法,加载并初始化默认子应用模块的消息资源,并创建MessageResources对象。 (6)调用initModuleDataSource()方法,根据Struts1框架配置文件中定义的data-sources元素加载并初始化默认子应用模块的数据源。如果在Struts1框架配置文件中没有定义data-sources元素,则忽略这一步骤。 (7)调用initModulePlugins()方法,加载并初始化默认子应用模块的所有插件。 步骤(4)至步骤(7)执行的是模块初始化工作,当默认子应用模块都被成功加载并初始化后,如果还有其它的子应用模块,则重复这几步操作。 6.1 核心控制器ActionServlet 扩展ActionServlet类 ActionServlet类是Struts1框架默认的核心控制器类。如果开发人员想扩展这个默认的核心控制器类的功能,开发人员只需要自己编写一个Servlet并继承ActionServlet,根据需要加入自定义的操作,然后在web.xml文件中通过servlet元素注册自定义的Servlet,也就是将servlet-class子元素的值设置成自己编写的Servlet就可以了。 举例 6.2 RequestProcessor类 RequestProcessor简介 RequestProcessor类是在Struts1.1及以后的版本中出现的。 从Struts1.1版本开始,为了减轻核心控制器ActionServlet类的负担,ActionServlet的实际处理操作委托给了RequestProcessor类中的process()方法,即代码被转移到了RequestProcessor类中。 6.2 RequestProcessor类 process()方法 Struts1.2版本的RequestProcessor类中的process()方法的源码阅读与分析。 process()方法的处理流程详见课本。 6.2 RequestProcessor类 扩展RequestProcessor类 任务描述: 为确保用户输入的中文信息能在控制台正确输出,可以在自己定义的RequestProcessor类中实现检测用户请求的字符编码是否已经设为UTF-8。如果是,就进行正常的处理操作,否则退出process()方法的处理。 操作示例 6.3 Action类 Action简介 Action 是在HTTP请求的内容和对应的处理该请求的业务逻辑之间的一个适配器。核心控制器ActionServlet将为每一个请求选择一个合适的Action
文档评论(0)