- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- Slide 1 - vod Jihoeská univerzita.ppt
- Slide 1 - 中国护理管理 .ppt
- Slide 1 - 中研院物理研究所.ppt
- Slide 1 - 华东师范大学中澳班.ppt
- SLIDE 1 - 中華電信退休同人協進會全球資訊網.ppt
- SLIDE 1 - 广东省注册会计师协会.ppt
- Slide 1 - 阳光招聘阳光招聘网品牌人力云南招聘昆明招聘阳光会场人才.ppt
- Slide 1 - 浙江省国际投资促进中心.pptx
- SLIDE 1 - 青海金融超市.ppt
- Slide 1 - 重庆大学电气工程学院.ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)