Struts扩展控制器及导航设置.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts扩展控制器及导航设置

Struts扩展控制器及导航设置 deli.wu@ 教学目标 Struts控制器的组成 理解struts框架的初始化流程 理解struts框架的响应客户请求的流程 理解struts框架响应客户请求的流程 Struts中定制前端控制器 Struts中配置多模块开发 Struts控制器的组成 在Struts各种组件中最重要的组件就是控制器组件. Struts控制器组件的组成 Struts控制器主要由ActionServlet组成,另外包含 RequestProcessor Action 及 ActionForward三个辅助类. Struts多应用模块 多应用模块是指同一个应用包含多个子应用,每个子应用可以处理相关的一组功能,例如:对于网上购物,可以由一个子应用来处理商品和商品目录信息.再由另一个子应用来处理购物车和订单信息. 把应用划分为多个模块,可以简化应用的并行开发过程,缩短开发周期. 在Struts中,所有的子应用都共享同一个ServletAction但是每一个子应用都有单独的配置文件和RequestProcesser实例. Struts多应用模块 Struts 框架的初始化流程 Servlet容器会在ActionServlet被加载后立即执行它的init()方法,以下是ActionServlet的init的执行过程分析: 调用initInternal()方法,初始化所有在Struts框架中用到的消息资源,例如:日志,警告,错误信息等. 调用initOther()方法,从web.xml中加载ActionServlet的初始化参数,例如:config等. 调用initServlet()方法,从web.xml中加载ActionServlet的URL映射信息. Struts 框架的初始化流程 调用initModuleConfig()方法,加载并解析默认子应用模块的Struts配置文件,并创建ModuleConfig对象,并且将它存储在ServletContext中. 调用initModuleMessageResource()方法,加载并初始化默认子应用模块的消息资源,并且建立MessageResources对象,并将它保存在ServletContext中. 调用initModuleDataSource()方法,加载并实始化默认的子应用模块数据源,如果没有在struts的配置文件中配置data-source元素,这一步将被忽略. 调用initModulePlugins()方法,加载并初始化默认子应用模块的所有插件. 当默认的子应用模块初始化成功后,如果还有其它的子应用模块,ActionServlet将重复4到7的步骤,分别对其它子模块进行初始化. Struts 框架的初始化流程 Struts 框架响应客户请求的流程 Struts 框架响应客户请求的流程 当ActionServlet实例接收到HTTP请求后,在doGet()和doPost()方法中都会调用process()方法来处理请求. ModuleUtils.getInstance().selectModule(request, getServletContext());//选择请求相关的子应用模块 ModuleConfig config = getModuleConfig(request);//获取请求相关的配置文件 RequestProcessor processor = getProcessorForModule(config);//获取请求相关的处理器 if (processor == null) { processor = getRequestProcessor(config); } cess(request, response); RequestProcesser的process()方法 首先调用processMultipart()方法.如果Http请求的为Post方法,并且请求的Content-type的类型为mutipart/form-data,标准的HttpServletRequest将被重新封装以处理多数据体的Http请求,如果没有设定Content-type则直接返回HttpServletRequest对象. 调用processPath()方法,获取请求的URI路径,该信息用于选择合适的Action组件 调用processLocale()方法,当ControllerConfig中的locale属性为true时,将读取用户请求中包含的locale信息,然后把locale信息保存在session范围内. 调用proce

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档