




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三大框架原理Struts2Struts1 与 Struts2有异同Struts2 的原理Struts2的使用范围及注意事项知识扩展Struts1 与 Struts2异同1.struts1的action是单例模式且必须是线程安全的,action的一个实例处理所有请求. struts2的action对象为每个请求产生一个实例,没有线程安全问题. struts1的action依赖于servlet api,struts2的action不依赖与容器,允许脱离容器单独测试. 2.struts1的execute方法依赖于servlet api,使得测试要依赖于容器.struts2的action可以通过初始化
2、,设置属性,调用方法来测试,依赖注入支持是测试更容易. struts1试用ActionForm对象捕获输入,普通JavaBean不能捕获输入.动态bean可以作为ActionForm的选择,但是是在重复描述已经存在的Javabean. struts2直接试用action属性作为输入属性,消除了对第二个输入对象的需求.也支持ActionForm模式,这种ModelDriven特性简化了tiglib对POJO对象的应用. 3.struts1整合的JSTL,试用JSTL EL,EL有基本对象图遍历功能,但是对集合和索引属性的支持很弱 struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式
3、语言- Object Graph Notation Language(OGNL) 4.struts1试用标准jsp机制把对象绑定到页面中来访问 ,struts2试用ValueStack技术,允许试用一系列名称相同但类型不同的属性重用页面 5.struts1的ActionForm通常都是String类型,试用BeanUtils进行类型转换 struts2使用OGNL进行类型转换,提供基本和常用对象的转化器. 6.struts1支持在ActionForm的validate方法中手动效验,或者通过validator扩展效验 struts2支持通过validate方法和XWork效验框架来进行效验 7
4、.struts1支持每个模块有单独的request生命周期,但是模块中的所有action必须共享相同的生命周期 struts2支持通过拦截器interceptor stacks为每个action创建不同的生命周期 6 ActionProxy创建一个ActionInvocation的实例。7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Acti
5、on链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。 Filter 与intercept的区别实现方式:filter 实现filter接口,声明dofilter方法Intercept 实现interceptor接口,声明intercept方法Filter是函数的回调,intercept是通过反射执行Filter依赖于容器,只能在容器中执行,intercept
6、与容器无关Filter在加载时声明,intercept通过配置文件方式声明是否过滤IOC概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系 核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean /amigoxie/archive/2007/10/12/152413.htmlmSet=pdk.getWriteMethod();/利用Java的反射极致调用对象的某个set方法,并将值设置进去/mSet.invoke(obj,value);1.创建一个实现接口InvocationHandler的类,它必须实现invoke方法2.创建被代理
7、的类以及接口3.通过Proxy的静态方法newProxyInstance(ClassLoader loader, Class interfaces, InvocationHandler h) 创建一个代理4.通过代理调用方法/developerworks/cn/java/j-lo-spring-principle/view/c03a2629bd64783e09122b9d.htmlIOC的原理Spring的架构/view/1ed1a917866fb84ae45c8da1.html?from=rec&pos=3&weight=28&lastweight=24&count=5AOP原理Hibern
8、ate1. 读取并解析配置文件 2. 读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4. 创建事务Transation 5. 持久化操作 6. 提交事务 7. 关闭Session 8. 关闭SesstionFactory Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 get与load的区别1.get()方法直接返回实体类,load()方法可以返回实体的代理类实例。2.hibernate load是采用延迟机制(当lazy属性为true时) 而get不采用延迟机制(get语句马上读库)3.找不到符合条件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件工程中的软件架构设计考核试卷
- 货运火车站物流企业服务质量控制与提升考核试卷
- 羽绒制品企业信息化建设与管理考核试卷
- 航标器材在跨海物流运输中的作用考核试卷
- 牛的饲养国际合作模式研究考核试卷
- 矿山机械维修工程案例分析考核试卷
- 租赁合同的数字化签署与流程自动化考核试卷
- 车载设备智能驾驶车辆驾驶辅助系统集成测试考核试卷
- 电子电路原理与应用考核试卷
- 手术室的感染管理
- 购买废旧电缆合同协议
- 2024年河北承德辰飞供电服务有限公司招聘真题
- 焊接工程师理论基础考核试题及答案
- 电气设备知识培训课件
- 历史文化遗产类博物馆文旅融合发展的路径探索
- 电影《满江红》观后感与教育启示
- 统编版语文八年级下册24 唐诗三首课件
- 山东省临沂市普通高中学业水平等级考试模拟试题政治含答案
- 2025年个人家政服务合同标准
- 基于STM32的输电线路状态监测系统的研究
- 环卫规范作业培训
评论
0/150
提交评论