没有合适的资源?快使用搜索试试~ 我知道了~
首页Struts2+hibernate+spring的常见面试题
Struts2+hibernate+spring的常见面试题
需积分: 9 148 浏览量
更新于2023-03-16
评论 17
收藏 403KB DOC 举报
1、什么是Struts2 Apache Struts2的是一个在Java中构建Web应用程序开源框架。 Struts2是基于OpenSymphony的WebWork的框架。它是Struts1的提高,它更加灵活,易于使用和扩展。 Struts2的核心组成部分是Action,拦截器和结果页。 Struts2提供了许多方法来创建Action类,并通过struts.xml中或通过注释进行配置。我们可以创建自己的拦截器实现常见任务。 Struts2中自带了很多的标签,并使用OGNL表达式语言。我们可以创造我们自己的类型转换器来呈现的结果页面。结果页面可以JSP和FreeMarker的模板。
资源详情
资源评论
资源推荐

Web
項目开发流程及规范 国站长站
一、 项目的角色划分
如果不包括前、后期的市场推广和产品销售人员,开发团队一般可以划分为项目负责人、程序
员、美工三个角色。
项目负责人在我们中国习惯称为项目经理,负责项目的人事协调、时间进度等安排,以及处
理一些与项目相关的其它事宜。
程序员主要负责项目的需求分析、策划、设计、代码编写、网站整合、测试、部署等环节的工
作。 美工负责网站的界面设计、版面规划,把握网站的整体风格。
角色划分是 项目技术分散性甚至地理分散性特点的客观要求,分工的结果还可以明确工作责任,
最终保证了项目的质量。分工带来的负效应就是增加了团队沟通、协调的成本,给项目带来一定的
风险。所以项目经理的协调能力显得十分重要,程序开发人员和美工在项目开发的初期和后期,都
必须有充分的交流,共同完成项目的规划和测试、验收。
二、 开发工具的选取
我们的经验是,选用工具时最好是统一的,统一工具的好处是可以保持同一个项目文档的一致性,
便于开发人员的交流和文档的保存。
三、 项目开发流程
如果项目真正谈下来了,就需要正式确定前阶段的需求分析,该补充的步骤必须补上。然后进行详
细的总体设计,其实也基本是前阶段工作的重复和完善。 中国站长站
然后由美工根据内容表现的需要,设计静态网页和其它动态页面界面框架,该切分的图片要根据尺
寸切割开来。给需要程序动态实现的页面预留页面空间。制定字体、字号、超级链接等 样式等。
在美工设计页面的同时,程序员着手开发,后台程序代码,做一些必要的测试。
美工界面完成后,由程序员添加程序代码,整合网站。
由项目组共同联调测试,发现 ,完善一些具体的细节。
制作帮助文档、用户操作手册。向用户交付必要的产品设计文档。
然后进行网站部署、客户培训。
最后进入网站维护阶段。这一阶段也可以不包括在该项目中,而作为公司的服务内容。
以上的每一部都会产生一些阶段性成果,项目经理需要及时进行监督、审核,发现问题及时纠正。
为了控制项目的进度,应当实施填写项目进度表制度,即每天填写工作日志,记录当天的工作细
目和工作量,以及需要解决和已经解决的问题。
Struts2 面试题
、什么是 Struts2
的是一个在 中构建 应用程序开源框架。 是基于
的 的框架。它是 的提高,它更加灵活,易于使
用和扩展。 的核心组成部分是 ,拦截器和结果页。
提供了许多方法来创建 类,并通过 ! 中或通过注释进行配
置。我们可以创建自己的拦截器实现常见任务。 中自带了很多的标签,并使
用 "#$ 表达式语言。我们可以创造我们自己的类型转换器来呈现的结果页面。结果
页面可以 % 和 &' 的模板。
2、Struts1 和 Struts2 的区别是什么?

组件 Struts1 Struts2
类 需要强迫继承一个类,不灵活 只要实现 接口(完成 )*
线程安全
类是单例的,非线程安
全,编程时要注意多线程副作用
类每次请求一个)性能降低*。
!%+耦合
%+与 !%+紧
紧耦合,,- 和
,对象直接传入
)*方法)虽然很方便*
%+和 !%+ 松耦合,自
动将表单 数据映射到 类的
. 属性) 也可以通过
& 实现*。
测试
类因为和
!%+耦合难于测试
类是一个正常 类,
易于测试。
,-
参数映射
需要我们创建
&类来 !/
-参数,还需要配置
- 参数映射是自动的,我
们只要有相应的 java0 属性在
类中,或实现 '/!1 接口
提供 .类名用于映射。
标签支持
使用 2$和自己的表
情。
使用 "#$
校验
支持 !/)*方法
手动
支持手动和验证框架整合。
视图输出 使用标准 %输出
使用 3!存储请求参数
和属性,使用 "#$和 标签访
问
1、Struts2 的核心组件?
类
+ 拦截器
结果页面(&'模板的 %
3!("#$和 2 库
2、创建 Action 类有几种方法?
实现 接口
使用 4元注解
继承 类
必须实现 )*方法,返回一个可配置的字符串
5、Action 和拦截器线程安全吗?
的 类是线程安全的,因为每个请求一个实例。
的拦截器是单例,所以它不是线程安全的,我们需要仔细地实现它们,以避免与共
享数据的任何问题。
6、 的拦截器执行什么模式?
过滤器
decorator
模式
和职责链模式

5、Struts2 的前端控制器是什么?
/7!%/8 &! 0每次请
求处理从这里开始。
6、什么是 ValueStack 和 OGNL?
3! 是一个用来处理客户端
请求的数据存储
区,数据存储在 中,
这是用 2/$! 为每个请求线程创建的,生命周期是请求级别。
对象图导航语言 .9"#$)"#$*是用户将储存在
! 中的数据导出,使用 "#$ 拦截器和结果页面都能访问到 3! 的数
据。
:、Struts2 有用的标签有哪些?
4 创建 ,和4配置一个类为多个
4#和 4#用于创建不同的模块
4,!用于结果页面
4,!% 用于配置结果页面的定位。
;、Struts2 重要的常量?
struts.devMode0是运行在开发调试模式,提供日志和调试功能,提交生产环境需要关
闭。
struts.convention.result.path0配置结果页面的位置,缺省 在
<8=%%9,2>?<#>?下寻找结果页面, 用这个常量能够改变这个位置。
struts.custom.i18n.resources0用来定义 ;支持
struts.action.extension0用来配置应用程序的 @,$ 后缀缺省是后缀
或/。
A、Struts2 的名称空间 namespace&有什么用?
我们能使用名称空间基于功能分离我们的 类,如 / 和客户等模块。

10、什么拦截器负责将请求参数映射到 action 类的 java
&bean 属性?
B%+ 0配置在 9
/C! 包中,名称是。这是 和 /C! 一部分。
hibernate 面试题
*& Detached Object(游离对象)有什么好处
1/.(游离对象)可以传递到任何层直到表现层而不是用任何
12)12C.*然后你还可以重新把游离对象赋给另外一个
*& JDBC hibernate 和 ibatis 的区别
、./D手动,手动写 -!
00/!、、/ 要将对象的值一个个取出传到 -! 中(不能直接传入一个对象。
00!D返回的是一个 !,要从 ,! 中一行一行、一个字段一个字段的取出,
然后封装到一个对象中,不直接返回一个对象。
、 的特点D半自动化
00-! 要手动写
00/!、、/D直接传入一个对象
00!D直接返回一个对象
5、D全自动
00不写 -!(自动封装
00/!、、/D直接传入一个对象
00!D直接返回一个对象
*& hibernate 如何实现数据表映射的继承关系
、两个表,子类重复父类的属性。
、一个表,子类父类共用一个表
E!FG@G!FGG/9!FG@GH
00E/!FG1+,+'+#2,I@8,2J%8GFGG?H
E!FG/G/9!FG/GH
00000EFG/,G!FG/IGFGG?H
00E?!H
E?!H
5、两个表,子类引用父类的主键,享用公共的字段或属性。
E!FG@G!FGGH
000E/FG/G!FG@8,+1GFGGH
000000E!FG/G?H
000E?/H
000EFGB/G!FGB/GFGG?H
00E./9!FG"G!FGGH
000 E!FG@8,+1G?H
00000EFG,G!FGIGFGG?H
000E?./9!H
E?!H

比较 Hibernate 的三种检索策略优缺点
立即检索;
优点:对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便
的从一个对象导航到与它关联的对象;
缺点:! 语句太多;可能会加载应用程序不需要访问的对象白白浪费许多内存空间;
延迟检索:
优点:由应用程序决定需要加载哪些对象,可以避免可执行多余的 ! 语句,以及避免加载
应用程序不需要访问的对象。因此能提高检索性能,并且能节省内存空间;
缺点:应用程序如果希望访问游离状态代理类实例,必须保证他在持久化状态时已经被初始化;
5迫切左外连接检索
优点: 对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方
便地冲一个对象导航到与它关联的对象。 使用了外连接,! 语句数目少;
缺点:可能会加载应用程序不需要访问的对象,白白浪费许多内存空间; 复杂的数据库表
连接也会影响检索性能;
* &如何在控制台看到 hibernate 生成并执行的 sql
在定义数据库和数据库属性的文件 !7 ! 里面,把 BI-!设
置为 这样生成的 K$ 就会在控制台出现了
注意:这样做会加重系统的负担,不利于性能调优
*& hibernate 都支持哪些缓存策略
,/9!D0这种策略适用于那些频繁读取却不会更新的数据,这是目前为止最简单和最有效
的缓存策略
L,/?BD这种策略适用于需要被更新的数据,比 /9! 更耗费资源,在非 2 环境
下,每个事务需要在 ! 和 /)*被调用
L#/?BD这种策略不保障两个同时进行的事务会修改同一块数据,这种策略适
用于那些经常读取但是极少更新的数据
L2!D这种策略是完全事务化得缓存策略,可以用在 2 环境下
*&hibernate 里面的 sorted collection 和 ordered collection 有什么区别
/!! 是在内存中通过 . 比较器进行排序的
//!! 是在数据库中通过 / 进行排序的
* spring hibernate struts 的笔试面试题(含答案)
Hibernate 工作原理及为什么要用?
原理:
读取并解析配置文件
读取并解析映射信息,创建 &
5打开
6创建事务 2
M持久化操作
剩余32页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0