集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版

上传人:平*** 文档编号:34319821 上传时间:2018-02-23 格式:PPT 页数:53 大小:3.31MB
返回 下载 相关 举报
集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版_第1页
第1页 / 共53页
集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版_第2页
第2页 / 共53页
集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版_第3页
第3页 / 共53页
集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版_第4页
第4页 / 共53页
集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版》由会员分享,可在线阅读,更多相关《集成Spring、hibernate、struts框架开发轻量级J2EE应用实例版(53页珍藏版)》请在金锄头文库上搜索。

1、构架强壮的J2EE应用 - 集成Spring、hibernate、struts框架开发轻量级J2EE应用,2006年12月6日肖菁,目录,升级Struts,实时获取配置信息的更新;,加入Hibernate,实现数据持久化;,应用Spring,让J2EE应用变得更强壮。,实时更新ActionBean;,Struts应用开发,Struts应用开发Struts是什么?,Web应用与MVCStruts是什么?一个开源的MVC框架一组JSP标签库Struts版本Struts 1Struts 2www.apache.org提供升级支持,Struts应用开发-MVC In Struts,HttpReques

2、t,HttpResponse,Controller,View,ActionServlet,ActionFormBean,JSP Taglibs,JSP,ActionClass,1、request,3、forward,2、fill withRequest data,4、fill withbusiness data,5、forward,7、get business data,6、use,8、response,Model,Struts应用开发解读Struts下载包,Struts应用开发Struts组件,Components1、Struts AppsBlank、Cookbook、Examples、Ma

3、ilReader、EL Example、Faces Example 1、Scripting MailReader等 2、Struts EL expression language 3、Struts Extras several popular but non-essential classes like ValidatorActionForm 4、Struts Faces supports the use of JavaServer Faces in Struts5、Struts Scripting allows Struts Actions to be written in the scri

4、pting language(Bean Scripting Framework ) 6、Struts Taglib 7、Struts Tilestemplating system,Struts应用开发Struts应用开发环境,开发环境: Windows XP Eclipse3.2 + WTP1.5.2 Struts 1.3.5 Oracle9i EasyStruts(可选),Struts应用开发配置Struts应用,配置Struts应用步骤: 1、创建Web应用目录2、将Struts应用所需的lib拷贝到WEB-INFlib目录下 所需的lib均存在于struts-1.3.5lib目录中3、在

5、WEB-INF目录中增加新的配置文件struts-config.xml、validation.xml4、配置ActionServlet 修改web.xml,增加ActionServlet “action”的配置内容,Struts应用开发开发Struts应用的关键步骤(1),演示实例说明: 用户注册开发步骤: 1、开发Model - UserFormBean继承org.apache.struts.action.ActionForm2、开发View - *.jsp 引入标签库编写标签和FormnBean交互注 name命名规范、和FormBean属性的一致性,Struts应用开发开发Struts应

6、用的关键步骤(2),3、开发ActionBean - UserActionA. 继承org.apache.struts.action.Action B. 提供public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception; 的实现 C. 和FormBean进行交互 UserFormBean userForm = (UserFormBean) form;D. 和JSP进行交

7、互 request.setAttribute(hello, Hello,这是从Controller传递过来的信息); E. 实现导航 farward = mapping.findForward(“success”);4、配置FormBean,Struts应用开发开发Struts应用的关键步骤(3),5、配置ActionBeanA. Action Bean配置B. 导航规则,Struts应用开发浏览和演示用户注册实例,演示内容:1、浏览Struts应用开发环境2、浏览Struts配置内容3、浏览用户注册实例开发内容FormBean、registerUserInput.jsp、success.js

8、p、failure.jsp、ActionBean、struts-config.xml4、演示用户注册实例,目录,升级Struts,实时获取配置信息的更新;,加入Hibernate,实现数据持久化;,应用Spring,让J2EE应用变得更强壮。,实时更新ActionBean;,Struts应用开发,Struts升级实时获取配置信息问题描述,在应用开发、调试过程中,随着开发进程的向前推进,需要在配置文件( struts-config.xml )中不停的增加 FormBean 、 ActionBean 的配置信息,然而每一次修改之后, Struts 框架不能及时地获取增加的信息,除非重新起动这个 W

9、eb 应用。,Struts升级实时获取配置信息问题分析,1、原理避免性能方面的问题采取的策略引发了问题2、具体原因I/O 操作是一种非常耗时的操作;配置信息保存在XML中;所有的配置信息在 Web 应用启动的时候一次性的读入 ;新增加的配置信息无法识别,Struts升级实时获取配置信息解决方案,调整配置信息获取策略:1、首选策略仍然是Struts提供的配置信息获取策略(一次性读取,保存在Java对象中);2、在首选策略没有成功的情况下,从struts-config.xml中查找符合要求的配置信息,并且同时保存在首选策略中(在保存配置信息的Java对象中增加必要的内容,包括相应的FormBean

10、和ActionBean);,Struts升级实时获取配置信息具体实现,获取配置信息的代码是org.apache.struts.taglib.html.FormTag的lookup方法中。 mapping = (ActionMapping) moduleConfig.findActionConfig(mappingName); 修改后的获取配置信息的代码段如下: actionMapping = (ActionMapping) moduleConfig.findActionConfig(mappingName); / 如果 Java 对象中没有对应的配置信息,访问配置文件,查找是否有应用启动 /

11、后新加入的配置信息 if (mapping = null) / 获取配置文件中的实际路径 String configFilePath = pageContext.getServletContext().getRealPath(“/”) + “/WEB-INF/struts-config.xml”; / 使用辅助类访问配置文件获取对应的 ActionBean 的配置信息 actionMapping = ActionFactory.getActionConfig(mappingName, configFilePath); / 使用辅助类访问配置文件获取该 ActionBean 对应的 FormBe

12、an 的配置信息 FormBeanConfig formBeanConfig = ActionFactory.getFormBeanConfig( actionMapping, configFilePath); / 将符合要求的 ActionBean 配置信息保存到 Java 对象中 If (actionMapping!= null) moduleConfig.addActionConfig(actionMapping); / 将符合要求的 FormBean 配置信息保存到 Java 对象中 If (formBeanConfig!= null) moduleConfig.addFormBean

13、Config(formBeanConfig); ,Struts升级实时获取配置信息其他,1、上面的解决方案均针对开发环境适用,运行环境下从性能考虑还是使用Struts默认的策略比较好;2、上面的解决方案仅针对FormBean、ActionBean的配置信息获取,其他的如Forward的并没有考虑在内;3、上面的解决方案仅针对单配置文件(Struts-config.xml)的情况,现在Struts允许使用多个配置文件,因此还需要在此基础上进行功能扩展,满足更高的要求。,目录,升级Struts,实时获取配置信息的更新;,加入Hibernate,实现数据持久化;,应用Spring,让J2EE应用变得

14、更强壮。,实时更新ActionBean;,Struts应用开发,Struts升级实时更新ActionBean问题描述,基于Sturts的应用开发、调试过程中, ActionBean 经常需要修改,然而每一次修改之后, ActionBean 就无法正常调用,需要重新起动这个 Web 应用才能够生效。,Struts升级实时更新ActionBean问题分析,1、原理 Struts中使用Servlet Context来缓存RequestProcessor对象2、具体原因RequestProcessor对象保存在Servlet Context中;修改Action后,ActionServlet被重新loa

15、d,Servlet Context被更新;RequestProcessor对象无法正常获取。,Struts升级实时更新ActionBean解决方案,将RequestProcessor对象的保存环境由Servlet Context环境切换到新创建某个对象的static变量中,当ActionServlet 被重新时,ProcessorFactory 对象的static变量不会发生变化。,Struts升级实时更新ActionBean实现(1),新创建ProcessorFactory 对象,用它的static属性proccessors保存RequestProcessor对象:public class ProcessorFactory public static HashMap processors = new HashMap(); public static void addProcessor(String key, RequestProcessor processor) processors.put(key, processor); public static Object getProcessor(String key) return processors.get(key); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号