Struts框架面试题
更新时间:2024-05-07 11:27:01 阅读量: 综合文库 文档下载
- Struts框架推荐度:
- 相关推荐
1. 简述Struts框架的初始化流程。 答案:
对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet
ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。
在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。 其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。 2. 简述Struts框架响应客户请求的工作流程 答案:
1. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
3. 根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。
4. 如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。
5. ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给哪个Action。如果应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
6. Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
7. ActionForward对象指向的JSP组件生成动态页面,返回给客户。 对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表单的JSP组件。在这种情况下,不会再创建Action对象并调用Action的execute方法。
3 Struts框架的数据验证可分为几种类型? 答案:
表单验证(由ActionForm Bean处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误
业务逻辑验证(由Action处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。
4 简述Form Bean的表单验证流程。 答案:
1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。
2、接下来Struts框架会调用ActionForm Bean的validate()方法进行表单验证。
3、如果validate()方法返回的ActionErrors 对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。
4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过
path属性:指定请求访问Action的路径 type属性:指定Action的完整类名
name属性:指定需要传递给Action的ActionForm Bean scope属性:指定ActionForm Bean的存放范围 validate属性:指定是否执行表单验证
input属性:指定当表单验证失败时的转发路径。
元素还包含一个
6. 简单叙述ActionForm Bean的作用 答案:
1、ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
2、Struts框架利用ActionForm Bean来进行View组件和Controller组件之间表单数据的传递。
3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionForm Bean中,把它传递给Controller组件,Controller组件可以对ActionForm Bean中的数据进行修改JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。 7 .叙述ActionForm执行步骤 答案:
(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射 (2)根据name属性,查找form bean的配置信息
(3)检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例。
(4)假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
(5)否则,就重新构建一个form bean的实例 (6)form bean的reset()方法备调用
(7)调用对应的setter方法,对状态属性赋值
(8)如果validatede的属性被设置为true,那么就调用form bean的validate()方法。
(9)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行。 8.在下面的标签中哪些是struts标签 A、
B、
答:FormBean是一种JAVABean,除了具有JAVABean的常规方法,还包含一些特殊方法,用于验证表单数据,以及将其属性重新设置为默认值。 FormBean用来进行View组件和Controller组件之间表单数据的传递。View组件接收到用户输入的表单数据,保存在FormBean中,把它传递给Controller组件,Controller组件可以对FormBean中的数据进行修改。 10、Forward与Global-Forward的区别
答:Forward是根据Action return的值找到对应的JSP页。当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中。 11.问题:在Struts应用的视图中包含哪些组件? 选项: (A) JSP (B) Servlet (C) ActionServlet (D) Action
(E) 代表业务逻辑或业务数据的JavaBean (F) EJB (G) 客户化标签 答案:A,G
12问题:在Struts应用的控制器中包含哪些组件? 选项: (A) JSP
(B) Servlet (C) ActionServlet (D) Action
(E)代表业务逻辑或业务数据的JavaBean (F) EJB (G) 客户化标签 答案:B,C,D
13.在struts配置文件中action元素包含哪些属性和子元素? 答案:
path属性:指定请求访问Action的路径 type属性:指定Action的完整类名
name属性:指定需要传递给Action的ActionForm Bean scope属性:指定ActionForm Bean的存放范围 validate属性:指定是否执行表单验证
input属性:指定当表单验证失败时的转发路径。
元素还包含一个
(E) 代表业务逻辑或业务数据的JavaBean (F) EJB
(G) 客户化标签 答案:F
15. 问题: struts框架中,关于FormBean,下列说法正确的是:
A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证
C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A
16. 问题:struts框架中,在一个Action的配置信息中,name属性指的是: A 当前action实例的名字
B 当前action所在的类的名字
C 该Action中调用的FormBean的实例的名字 D 该Action中调用的FormBean的类的所在包名 答案:C
17. 问题:关于struts项目中的类与MVC模式的对应关系,说法错误的是? A Jsp文件实现视图View的功能
B ActionServlet这一个类是整个struts项目的控制器 C ActionForm、Action都属于Model部分 D 一个struts项目只能有一个Servlet 答案:D
18、问题:以下哪些说法是正确的?
选项:(A)每个HTTP请求对应一个单独的ActionServlet实例
(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例 (D)每个子应用对应一个单独的web.xml文件 答案:C
19 ActionForm Bean对象是由谁创建的? 选项:
(A)
20、struts框架,错误的是? A Struts中无法完成上传功能 B Struts框架基于MVC模式
C Struts框架容易引起流程复杂、结构不清晰等问题 D Struts可以有效地降低项目的类文件数目 答案:C
21、问题:以下代码定义了一个变量,如何输出这个变量的值?
(D)<% String
myBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);%> <%=myBean%> 答案: A,D
22、问题:把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?答案: 提高可维护性 提高可重用性 支持国际化 23在struts配置文件中action元素包含哪些属性和子元素? 答案:
path属性:指定请求访问Action的路径 type属性:指定Action的完整类名
name属性:指定需要传递给Action的ActionForm Bean
scope属性:指定ActionForm Bean的存放范围 validate属性:指定是否执行表单验证
input属性:指定当表单验证失败时的转发路径。
元素还包含一个
B ActionServlet这一个类是整个struts项目的控制器 C ActionForm、Action都属于Model部分 D 一个struts项目只能有一个Servlet 答案:D
正在阅读:
Struts框架面试题05-07
2018-2019学年苏教版三年级语文下册第六单元教案09-16
构建制造企业知识价值链模型06-22
pcb微切片制作及不良分析 - 图文09-22
PSCAD中不同模块间的信号传递04-02
六年级奥数培训教材04-29
试论汉乐府民歌对诗歌发展的贡献09-09
(完整版)项目部成立安委会的文件04-08
最新人教版七年级数学上册全套同步练习题(课课练)及答案08-05
国王的玫瑰花作文500字06-25
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 框架
- 试题
- Struts
- 鸭子沟大桥分部工程施工方案 - 图文
- 成都信息工程工程导论2实验报告 - 图文
- 迷踪六爻十二宫
- 2bizbox实施手册
- 编译原理复习题 (1)
- 市政给排水设计规划要点
- 江西数学联赛获奖名单
- 生物化学下册作业
- 新标准英语第一至六年级英语句型
- 网络管理员高级技能练习
- “十三五”规划重点-磷酸伯氨喹项目建议书(立项报告)
- 2 CRH3型动车组牵引与控制特性分析
- 词法分析器实验报告
- 中国大地财产保险股份有限公司光伏组件产品质量及功率衰减保证保
- 2013年 卫生职称考试 公共卫生 中级 专业实践能力
- “信号与系统”复习题A(2010)参考答案
- 从所给的词语中选择正确的词语
- 长沙理工大学路基路面综合设计水泥路面设计计算书
- 广东省中小河流治理工程格宾石笼应用技术要求(试行)创新
- 《增支部》与《增壹阿含经》对照表 - 图文