所封装的地址。
14. 用struts +hibernate做一个增删查改(机试)
15. Struts2.0与Struts1.x有何区别。
特征
Struts的一
Struts的2
行动班
Struts的一要求采取行动班,以延长一个抽象的基类。 一个共同的问题在Struts的一,是编程抽象类而不是接
口。
1 2 Struts的行动, 可能实施一项行动的界面,随着其他接口,使可选和定制服务。 Struts的2提供了
相应的actionsupport一流的执行常用的接口。 虽然,这项行动的界面是不是必需的 。 任何波霍对象与执行
的签名可以被用来作为一个Struts的二行动的对象。
线程模型
Struts的一行动是单身,必须线程安全的,因为将只有一个实例一类来处理所有的请求采取行动。 单身人士策
略地方的限制,可以做些什么与Struts的一行动,并要求加倍小心发展。 行动的资源,必须线程安全的或同步
。 2 Struts的行动对象是实例对于每个请求,因此没有线程安全问题。 (在实践中, Servlet的容器,产
许多扔离家出走的对象,每次请求,并多一个对象不施加表现罚款,或影响垃圾收集) 。
Servlet的依赖 Struts的一行动,依赖于该Servlet的空气污染指数以来, httpservletrequest和
httpservletresponse传递给Execute方法,当一个行动是引用。 Struts的行动,二是不耦合的一个货柜。 最
经常的Servlet的背景是派代表作为简单的地图,让行动,以测试陷入孤立的境地。 2 Struts的行动仍然可以
使用原来的请求和响应,如果需要。 不过,其他建筑元素,减少或消除需要访问httpservetrequest或
httpservletresponse直接。
测试
一个主要障碍,以测试Struts的一行动是Execute方法暴露了Servlet的空气污染指数。 第三党的扩展,
Struts的testcase ,提供了一套模拟对象的Struts 1 。 2 Struts的行动可以测试实例化的行动,设置属性,
引用的方法。 依赖注入的支持也使测试更简单。
收获的投入 Struts的一使用actionform对象捕获输入。 一样的行动,所有actionforms必须扩大基地,一流的
。 由于其他的JavaBeans不能被用来作为actionforms ,开发商常常造成多余的班,以捕捉的投入。
dynabeans可以用来作为一种替代创造常规actionform班,但这里太,发展商可能会redescribing现有的
JavaBeans 。
Struts的2使用性能的行动作为输入属性,不再需要第二个输入对象。 输入属性可能是丰富的对象类型可能有
自己的属性。 行动性质可以从网页上通过taglibs 。 Struts的2还支持actionform模式,以及波霍形式,对象
和波霍行动。 丰富的对象类型,其中包括商业利益或域对象,可以被用来作为输入/输出对象。 该
modeldriven功能简化taglb的提述,波霍投入对象。
语言表达
Struts的一整合与jstl ,所以它使用jstl下午。 的El已基本对象图遍历,但相对薄弱的收集和索引财产的支
持。 Struts的二可以使用jstl ,但框架也支持一个更强大和灵活的语言表达所谓的“对象图形符号语言” (
ognl ) 。
有约束力的价值观纳入意见 Struts的一使用标准的JSP机制,有约束力的物体进入该网页的背景下访问。
Struts的2使用“ valuestack ”技术,使该taglibs可以访问的价值观没有耦合您的看法,以对象类型,这是
渲染。 该valuestack策略允许重用的意见覆盖的类型可能有相同的属性名称,但不同的属性类型。
类型转换
Struts的一actionform属性通常是所有字符串。 Struts的一用途的商品- beanutils为类型转换。 转换器每级
的,而不是配置的每个实例。 Struts的2使用ognl为类型转换。 该框架包括转换为基本和共同的对象类型和原始。
验证
Struts的一支持手册审定通过验证方法对actionform ,或通过一个扩展到商品校验。 班级可以有不同的验证
背景为同一阶层,但不能链,以验证就分对象。 Struts的2支持手册审定通过验证的方法和xwork的验证框架。
该xwork的验证框架支持链接验证分为分性能的使用验证的定义为性能一流的类型和验证。
控制行动的执行 Struts的一支持独立的请求处理器(生命周期)为每个单元,但所有的行动,在该模块必须共
用相同的生命周期。 2 Struts的支持,创造不同的生命周期对每行动的基础上通过拦截堆叠。 自定义栈,才
能创造和使用不同的行动,视需要。
16. Struts/webwork 的工作机制,它有哪些标签
Struts 2框架的大致处理流程如下:
浏览器发送请求,例如请求/mypage.action、/reports/myreport.pdf等。
核心控制器FilterDispatcher根据请求决定调用合适的Action。
WebWork的拦截器链自动对请求应用通用功能,例如workflow、validation或文件上传等功能。
回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以是将数据
保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来
处理用户的请求。
Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML页面、图像,也可以是PDF文档或者其他
文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术。
Hibernate
1. 什么是Hibernate的并发机制?怎么去处理并发问题?
Hibernate并发机制:
a、Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务,单个线
程),它通常只使用一次,
然后就丢弃。
如果一个Session 实例允许共享的话,那些支持并发运行的,例如Http request,session beans将会导致出现资
源争用。
如果在Http Session中有hibernate的Session的话,就可能会出现同步访问Http Session。只要用户足够快的点
击浏览器的“刷新”,
就会导致两个并发运行的线程使用同一个Session。
b、多个事务并发访问同一块资源,可能会引发第一类丢失更新,脏读,幻读,不可重复读,第二类丢失更新一
系列的问题。
解决方案:设置事务隔离级别。
Serializable:串行化。隔离级别最高
Repeatable Read:可重复读
Read Committed:已提交数据读
Read Uncommitted:未提交数据读。隔离级别最差
设置锁:乐观锁和悲观锁。
乐观锁:使用版本号或时间戳来检测更新丢失,在的映射中设置 optimistic-lock=”all”可以在没有版本或者
时间戳属性映射的情况下实现 版本检查,此时Hibernate将比较一行记录的每个字段的状态 行级悲观锁:
Hibernate总是使用数据库的锁定机制