


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Version 1.0Struts 1x(四)扩展控制器课程介绍r;严" 本课程主要讲授Stmts 1.x基础知识 适用于Java开发工程师 面向的学员是对Servlet, JSP有基本了解的J2EE开发工程师全部课程时间大约是40分钟概要理解Struts框架的初始化流程理解Struts框架的响应客户请求的流程创建Actio n类理解业务逻辑验证的流程Struts控制器组件 Struts控制器组件主要包括:- Action Servlet组件:充当Struts框架的中央控制 器-Requestprocessor组件:充当每个子应用模块 的请求处理器- Action组件:负责处理一项具
2、体的业务Struts控制器组件的类框图(b jiiiI多应用模块多应用模块指同一个应用包含多个子应用,每个 子应用可以处理相关的一组功能。例如,对于网 上购物应用,可以由一个子应用来处理商品和商 品目录信息,再由另一个子应用处理购物车和订 单信息。把应用划分成多个模块,可以简化应用的并行开 发过程,缩短开发周期。所有的子应用都共享同一个ActionServlet实例, 但每个子应用有单独的配置文件和 Requestprocessor 实例。多应用模块weh.xtnlStruts框架初始化流程 Servlet容器会在ActionServlet被加载后立 即执行它的init()方法,以下是 Act
3、ionServlet的init()方法完成的初始化操 作:- (1)调用initlnternal()方法,初始化Struts框架内在的消息资源, 如与系统日志相关的通知、警告和错误消息。- (2)调fflinitOther()方法,从web.xml文件中加载ActionServlet 的初始化参数,女nconfig参数。- (3)调fflinitServlet()方法,从web.xml文件中加载 ActionServlet的URL唤射信息。此外,还会注册web.xml和Struts 配置文件所使用的DTD文件。这些DTD文件用来验证web.xml和 Struts配置文件的语法。Struts框架
4、初始化流程(4)调用initModuleConfigQ方法,加载并解析默认子应用模 块的Struts配晝文件,创建ModuleConfig对象,抱它存褊在 ServletContext 中。- (5)调用initModuleMessageResources()方法,加载并初始化 默认子应用模块的消息资滅 创建MessageResources对象,把 它存储在ServletContext中。- (6)调用initModuleDataSources0方法,加载并初始化默认子 应用模块的数据源。如果在Struts置文件中没有定义vdata sources元素,就忽略这一步骤。-(7)调用initMo
5、dulePlugins()方法,加载并初始化默认子应用 模块的所有插件。-(8)当默认子应用模块被成功的初始化后,如果还包括其他子 应用模块,将重复步骤(4)到步骤(7),分别对其他子应用 模块进行初始化。周甫(zoofchow)Struts框架初始化流程ActionSer/letStruts框架响应客户请求的流程ActionServlet 的 process ()方法当ActionServlet实例接收到HTTP请求后,在doGet()或doPost()方法中都会诟 用process()方法来处理请隶。IU F是ActionServlet的pocess()芳法的源代码:protected v
6、oid process( HttpServletRequest request, HttpServletResponse response) throws IOException, ServletExceptionIModulelltils.getlnstance().selectModule(requestz getServletContext(); getRequestProcessor(getModuleConfig(request).process(request, resp on se);12周甫(zoofchow)Action 类的 execute()方法7;public Acti
7、onForward execute(ActionMapping mapping? ActionFonn form,HttpServletRequest request, HttpServletResponse response)throws IOExceptior ServletException ;Action类的execute()方法的参数和返回值 execute()方法包含以下参数:-ActionMapping:包含了这个Action的配置信息,和 struts-config.xml 文件中的 v actio n> 元素对应。-Action Form:包含了用户的表单数据,当Str
8、uts框架调 用execute()方法时,Action Form中的数据已经通过了 表单验证。- HttpServletRequest:当前的 HTTP请求对象- HttpServletResponse:当前的 HTTP响应对象 Action类的execute()方法返回ActionForward对象,它包含 了请求转发路径信息。访问Resource BundleMessageResources messages 二 getResources(request); 在 Actio n 类 中 定义了 getResources(HttpServletRequestrequest)方法,该方法返回当
9、前默认MlMessageResources对象,它封装了 Resource Bundle中 的文本内容。接下来Action类就可以通过MessageResources对象来 访问文本内容。例如,如果要读取消息key为“hello.jsp力tie”对应的文本内容,可以调用MessageResources类的getMessage(String key)方法:String title=messages.getMessage("hello.jsp.title");业务逻辑验证流程如果用户输入的姓名为“Andy”,将创建包含错误信息的ActionMessage 对象,Action M
10、essage 对象被保存到 Actio nMessages 对象中。接下来调用在Action基类中定义的saveErrors()方法,它 负责把Action Messages对象保存到request范ill内。 最后返回Actio nFo rwa rd对象 Struts框架会根据ActionForward对象包含的转发信息把 请求转发到恰当的视图组件视图组件通过v html :errors标签把request范围内的 ActionMessages对象中包含的错误消息显示岀来,提示 用户修改错误。16周甫(zoofchow)消息类的类框图访问模型组件IIr i I| I UserDAO user
11、dao 二 new UserDAO()user.setName(Name);User 二 userdao.findByName( user); UserDAO代表业务数据和业务逻辑向视图组件传递数据request.setAttribute( "userinfo", user); session.setAttribute( Uuserinfo; user );以上代码完成:-把user对象保存在request范围内。-把user对象保存在session范围内。把HTTP请求转发给合适的视图组件/ Forward control to the specified success
12、 URI return (mapping.findForward(uuserinfo”);20周甫(zoofchow)在配置文件中作了如下配置:<action path type name="/useri nfo”=".struts.UserActio nH=uUserFormnscope = "request" validate = "true"input=“ /search.jsp"><forward name=uuserinfo" path="/userinfo.jsp” /> </actio n>练习题1问题:以下哪些说法是正确的?选项:-(A)每个HTTP请求对应一个单独的Action Servlet实例-(B)对于每个请求访问HelioAction的HTTP请求, Strutsli架会创建一个单独的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 简述羊水过多的治疗原则
- 物流公司驾驶员劳务合同书范例
- 租住酒店合同书模板二零二五年
- 专利权转让协议书二零二五年
- 2025至2030全球与中国水洗芝麻行业发展现状及趋势预测研究报告
- 以用户为中心的情感化健康管理应用探索
- 区块链技术助力打造教育新生态
- 区块链技术引领会计行业迈向新纪元
- 2025年高考政治材料题考点押题冲刺(选择性必修123)
- 企业信息透明化的区块链技术解决方案
- 香港朗文1A-6B全部单词(音标版)
- 人工智能对国家安全战略的影响
- 14J936变形缝建筑构造
- 果树病虫害生物防治技术规程
- 2024年山东滨州市属事业单位招考公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 钢轨超声波探伤70°探头详解
- 外科常见手术备皮
- 专项债申报操作流程及项目评审细则(详细版)
- 装修安全措施方案
- 银行卡租用协议合集3篇
- 大型商业综合体弱电智能化规划方案大型商场智能化系统设计方案城市综合体弱电方案
评论
0/150
提交评论