Struts2考试题分析
Struts框架核心测试题
一、填空题
1.Struts 2框架的web.xml文件中至少要包含两部分内容,分别是
、。
2.web.xml配置中的“/*”表示:。
3.如果Struts 2工程中包含多个配置文件,使用指令将其加入到默认的struts.xml文件中。
4.返回类型分别有:、、、、。
5.实现execute()方法的两种方式:、。
6.JSP页面中使用taglib标签导入标签库的代码是:。
7.单选按钮的Struts 2标签是:;文本区的Struts 2标签是:
;复选框的Struts 2标签是:;下拉列表的Struts 2标签是:。
8.AcionSupport的validate方法进行数据验证时,使用和
加入错误信息。
二、简单题
1.如何在Web项目中添加Struts 2开发的框架支持。
2.请分析
3.2节“带有表单的Hello程序”的数据流程,请用流程图的方式画出。
3.请简述Action的作用、基本构成和配置方法。
4.假设留言页面news.jsp包含:标题文本框(name属性值是title),内容文本区(name属性值是content),留言处理的Action类是Text.java,留言成功页面success.jsp,失败页面是error.jsp,请写出对应的struts.xml配置代码。
Struts2练习题说课讲解
Struts 2作业1.简述什么是MVC?答:MVC 的全称为model-view-controller(模型-视图-控制器)。
MVC 是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。
使用MVC 开发出来的应用程序一般包括以下几块内容:·控制器(Controller):控制器类处理客户端向Web 应用程序发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。
·模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。
·视图(View):视图类是Web 应用程序中用来生成并显示HTML 格式的服务器端对客户端请求的响应结果的模板文件2.Struts 2以(WebWork)为核心,采用(拦截器)的机制来处理用户的请求。
3.简述一个请求在Struts 2框架中的处理流程,请按自己对框架的理解叙述。
答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面。
4.不属于Action接口中定义的字符串常量是( B )?A)SUCCESSB)FAILUREC)ERRORD)INPUT5.资源文件的后缀名为(D)?A)txtB)docC)propertyD)properties6.在JSP页面中可以通过Struts 2提供的(D)标签来输出国际化信息。
A)<s:input>B)<s:property>C)<s:submit>D)<s:text>7.以文字过滤拦截器为例,简述拦截器的使用步骤。
答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面;8.在同一个系统中配置多个拦截器,试说明它们的执行顺序。
软件开发框架(J2EE)Struts 2拦截器习题与答案
1.以下属于struts2的控制器组件是()。
A.ActionB.ActionFormC.ActionServletD.dispatchAction2.以下属于struts2的体系结构的是()。
A.struts2控制器组件B.struts2配置文件C.FilterDispathcerD.Action3.以下属于struts2配置文件中的配置元素是()。
A.<package>B.<action>C.<form-beans>D.<action-mappings>4.关于struts1和struts2对比的说法正确的是()。
A.Struts1要求Action类继承Struts1框架中的Action父类,Struts2中则不一定需要继承,可以是POJO类B.struts1中的Action不是线程安全的,而struts2中的Action是线程安全的C.struts1和struts2中都使用ActionForm对象封装用户的请求数据D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的是()。
A.每个Action对象实例拥有一个ValueStack对象B.每个Action对象实例拥有多个ValueStack对象C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中D.ValueStack会在请求开始时被创建,请求结束时消亡6.关于struts2配置文件说法正确的是()。
A.必须在WEB-INF/classes目录下B.名字必须为struts.xmlC.配置Action时,必须配置包信息D.使用<forward>元素配置转发7.在struts2配置中用()元素来配置常量。
B.<constants>C.<constant>D.<constant-mapping>8.关于struts2包的说法正确的是()。
STRUTS2模拟(答案)
STRUTS2模拟测试(开卷——定时90分钟)一、填空题1.Struts2框架由___________和___________框架发展而来。
(Struts&WebWork )2.Struts2以___________为核心,采用___________的机制来处理用户的请求。
(WebWork,拦截器)3.构建Struts2应用的最基础的几个类库是___________、___________、___________、___________以及___________。
4.Struts2中的控制器类是一个普通的___________。
Class5.如果要在JSP页面中使用Struts2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___________。
<%taglib uri="/struts-tags" prefix="s"%>6.在Struts2表单标签库中,表单标签为___________。
<s:form>7.ActionSupport类实现了___________接口和___________等接口。
8.通过控制器类中的___________方法来输出校验错误信息。
二、选择题1.不属于Action接口中定义的字符串常量的是___________。
BA.SUCCESS B.FAILUREC.ERROR D.INPUT2.在控制器类中一般需要添加相应属性的___________和___________。
ACA.setter方法 B.as方法C.getter方法 D.is方法3.控制器需要在___________配置文件中进行配置。
BA.web.xml B.struts.xmlC.struts2.xml D.webwork.xml4.不属于Struts 2表单标签库的是___________。
Struts2面试题分析_尚硅谷_佟刚_
Struts2 面试题分析1. 简述 Struts2 的工作流程:①. 请求发送给 StrutsPrepareAndExecuteFilter②. StrutsPrepareAndExecuteFilter 判定该请求是否是一个 Struts2 请求③. 若该请求是一个 Struts2 请求,则 StrutsPrepareAndExecuteFilter 把请求的处理交给 ActionProxy④. ActionProxy 创建一个 ActionInvocation 的实例,并进行初始化⑤. ActionInvocation 实例在调用 Action 的过程前后,涉及到相关拦截器(Intercepter)的调用。
⑥. Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。
调用结果的 execute 方法,渲染结果。
⑦. 执行各个拦截器 invocation.invoke() 之后的代码⑧. 把结果发送到客户端2. Struts2 拦截器 和 过滤器 的区别:①、过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器。
②、Struts2 拦截器只能对 Action 请求起作用,而过滤器则可以对几乎所有请求起作用。
③、拦截器可以访问 Action 上下文(ActionContext)、值栈里的对象(ValueStack),而过滤器不能.④、在 Action 的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
3. 为什么要使用 Struts2 & Struts2 的优点:①. 基于 MVC 架构,框架结构清晰。
②. 使用 OGNL: OGNL 可以快捷的访问值栈中的数据、调用值栈中对象的方法③. 拦截器: Struts2 的拦截器是一个 Action 级别的 AOP, Struts2 中的许多特性都是通过拦截器来实现的, 例如异常处理,文件上传,验证等。
struts2问答和答案
负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径
不带后缀或者后缀以.action结尾,这时请求将被转入struts2框架处理,否则struts2框架将略过该请求的处理。
ServletContext servletContext = ServletActionContext.getServletContext();
方案二:
类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,
所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
1)在软件设计上Struts2的应用可以不依赖于Servlet API和struts API。 解耦合
2)拦截器,实现如参数拦截注入等功能;
3)多种表现层技术,如:JSP、freeMarker、Velocity等;
4)Struts2的输入校验可以对指定某个方法进行校验;
2)过滤器是拦截用户请求的,范围明显比拦截器大的多。 可以拦截静态资源html,jsp等页面
14请你写出struts2中至少5个的默认拦截器?
fileUpload 提供文件上传功能
i18n 记录用户选择的locale
struts2常见面试题
struts2常见面试题Introduction:Struts2是一种用于开发Java Web应用程序的开源Web应用框架。
在软件工程领域,Struts2常常是面试中的热门话题。
本文将介绍一些常见的Struts2面试题,并提供详细解答和示例。
Question 1: 什么是Struts2框架?它的主要特点是什么?Struts2是一个基于MVC设计模式的Web应用框架。
它通过集成多个核心组件(如拦截器、过滤器、表单验证等)提供了一套丰富的功能,用于简化开发和管理Java Web应用程序。
Struts2的主要特点包括:1. 松耦合:Struts2使用基于配置的方式来管理组件之间的依赖关系,降低了模块之间的耦合。
2. 灵活性:开发人员可以根据自己的需求进行扩展和定制,以适应不同的项目需求。
3. 可测试性:Struts2的组件松耦合特点使得单元测试变得容易,并且可以方便地模拟用户请求进行测试。
Question 2: Struts2的核心组件有哪些?Struts2的核心组件包括:1. Action:处理用户请求的核心组件,负责接收请求并执行相应的业务逻辑。
2. Interceptor:用于对请求进行预处理和后处理的拦截器组件。
3. Result:负责生成响应结果,可以是页面视图或其他格式的数据(如JSON、XML等)。
4. FilterDispatcher:负责将请求分发给合适的Action处理。
5. ValueStack:用于存储Action处理的结果数据,支持OGNL表达式以便于数据的访问和操作。
Question 3: 如何定义一个Struts2的Action?在Struts2中,可以通过以下几种方式来定义一个Action:1. 实现Action接口:通过实现Action接口,并提供相应的业务方法来处理请求。
2. 继承ActionSupport类:ActionSupport是一个提供了一些方便方法的抽象类,可以直接继承并实现自己的业务逻辑。
struts2简答题
1.Struts1存在的缺点是什么?答:Struts1的缺点:没有实现model的整合技术;没有与Freemark或velocity等模板技术整合的技术;由于与ServletAPI耦合严重,测试需要web服务器,比较麻烦,属于侵入式设计,系统重构困难。
2.与struts1对比,Struts2 的优点是什么?答:Action不再与servletAPI耦合,实现B/S向C/S结构的转换;Action不需要和webWork 耦合,代码重用性好;支持更多的表现技术层;测试更加容易。
3.struts2框架的处理流程?答:浏览器发送请求;FilterDispatcher根据用户的请求调用相应的action;Struts2的拦截器链自动对请求调用通用功能;回调Action的execute方法;Execute方法处理结果将被输出到浏览器中,对应于相应的表现技术。
4.Struts2的web应用如何自动整合其他框架?答:structs 2框架提供一种类似esclipse的扩展方式,它允许一种“可插拔”的方式安装插件,提供类似Structs2-xxx-plugin.jar的文件,只要该文件放在web应用的WEB-INF/lib路径下,struts2框架将自动加载该框架。
5.Struts2中如何匹配后缀为.action的请求的,是否可以改成.do?答:可以,还可以改成/*任何其他URL pattern形式6.在struts.xml中,包含配置的作用是什么?答:采用<include>标签,将较大struts.xml分而治之7.什么是拦截器?拦截器的作用,拦截器栈与拦截器的区别,拦截器的配置答:拦截器可以动态的拦截发送到指定Action的请求,通过拦截器机制,可以在Action的执行前插入某些代码,通过这种方式,就可以把多个action中需要重复指定的代码提取出来,就在拦截器是定义而提供了更好的代码重用。
拦截器是AOP的编程思想,允许在Action处理之前和处理之后,加入用户自定义代码;它的作用:进行权限控制,跟踪日志,跟踪系统瓶颈区别:一个拦截器栈可以包含多个拦截器,一个拦截器可以完成一组特殊功能。
struts2面试题
struts2面试题Struts2是一个基于Java开发的Web应用程序框架,被广泛应用于企业级Java应用开发中。
在面试中,面试官可能会提出一些关于Struts2的问题,以评估应聘者的技术水平。
下面是一些常见的Struts2面试题及其详细答案,希望对你在面试中有所帮助。
1. 什么是Struts2?Struts2是一个轻量级的、基于MVC模式的Web应用程序框架。
它采用Java Servlet API和JavaServer Pages (JSP)技术,并提供了一种简单易用的方式来开发可维护和可扩展的Web应用程序。
2. Struts2的主要特性是什么?Struts2的主要特性包括:- MVC架构:将应用程序分为模型、视图和控制器,使开发更容易管理和扩展。
- 拦截器:通过拦截器可以在请求处理的各个阶段添加自定义的逻辑。
- 标签库:提供了丰富的标签库,简化了页面开发。
- 表单验证:提供了灵活且强大的表单验证机制,可以验证用户输入的数据。
- 国际化支持:支持多语言和本地化。
- 配置简单:通过配置文件来管理应用程序的行为。
3. Struts2的工作原理是什么?Struts2的工作原理如下:1) 客户端发送HTTP请求到服务器。
2) 服务器将请求交给Struts2的过滤器(Filter)。
3) 过滤器通过配置文件找到对应的Action,并调用相应的方法。
4) Action处理请求,并返回一个结果页面的名称或一个结果对象。
5) 结果页面的名称通过配置文件进行映射,服务器将其发送给客户端。
4. 什么是Struts2中的Action类?Action类是Struts2框架中的核心组件,用于处理Web请求。
一个Action类对应一个业务功能,其包含了要执行的方法和数据。
它负责接收请求、处理业务逻辑、将结果返回给前端页面。
5. Struts2中的拦截器是什么?有哪些内置的拦截器?拦截器是Struts2中的组件,用于在请求处理的各个阶段添加自定义的逻辑。
Struts2试题上课讲义
Struts2 试题1.struts2的执行流程?客户端提交一个HttpServletRequest请求(action或JSP页面)请求被提交到一系列Filter过滤器,如ActionCleanUp和FiterDispatcher等FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器询问ActionMapper是否需要调用某个action来处理如果ActonMapper据诶的那个需要调用某个A传统,FilterDispatcher则把请求教到ActionProxy,由其进行处理ActionProxy通过Configuration Manager询问框架配置文件,找到需要调用的Action类ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用action Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器最后ActionInvocation负责根据struts配置文件中配置的result元素,找到与返回值对应的result2.struts2的web里需要配置什么?1.<filter>2.<!-- 配置Struts2核心Filter的名字 -->3.<filter-name>struts2</filter-name>4.<!-- 配置Struts2核心Filter的实现类 -->5.<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>6.</filter>7.<!-- 配置Filter拦截的URL -->8.<filter-mapping>9.<!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->10.<filter-name>struts2</filter-name>11.<url-pattern>/*</url-pattern>12.</filter-mapping>3.struts.xml文件哪个常量可以实现不用重新启动服务就可以得到反馈?Timmer4.struts中的package的作用是什么?namespace可以为空吗?如果namespace为空会意味着什么呢?标识可以、如果没写,说明该包为默认空间只要敲index没有精确对应的package都交给namespackage 如果还没有就崩溃5.Action 的实现通集成常用那种方法?一种是直接实现自己的Action另一种是实现Action的接口继承ActionSupport6.路径设置用什么路径,绝对还是相对?都可以7.通配符有几种?要遵循什么原则?{1}方法名8.Action的属性?path属性:指定请求访问Action的路径type属性:指定Action的完整类名name属性:指定需要传递给Action的ActionForm Beanscope属性:指定ActionForm Bean的存放范围validate属性:指定是否执行表单验证input属性:指定当表单验证失败时的转发路径。
软件开发框架Struts2标签库习题与答案
一、多选题1.Struts 框架提供了哪几种标签库()。
A.HTML 标签库B.Bean 标签库C.Logic 标签库D.Template 标签库E.Nested 标签库2.下列哪个Strtus 标签能生成HTML 超链接<a> 元素()。
A.<html:html> 标签B.<html:base> 标签C.<html:img> 标签D.<html:link> 标签E.<html:rewrite> 标签3.以下哪些Struts 标签()能生成与HTML 表单相关的元素。
A.<html:link> 标签B.<html:text> 标签C.<html:radio> 标签D.<html:multibox> 标签E.<html:select> 标签4.下面哪些标签()能创建HTML 表单复选框控件。
A.<html:checkbox> 标签B.<html:radio> 标签C.<html:multibox> 标签D.<html:select> 标签E.<html:cancel> 标签5.使用下列哪个标签()能在页面输出在验证表单时发生的错误。
A.<html:multibox> 标签B.<html:errors> 标签C.<html:messages> 标签D.<html:error> 标签E.<html:cancel> 标签6.Struts Bean 标签库能提供下列哪些服务()。
A.访问HTTP 请求报头信息B.访问JSP 隐含对象C. 访问 Web 应用资源D. 定义 JavaBeanE. 输出 JavaBean7. 下列哪个标签()能访问 JSP 隐含对象。
struts2面试题
struts2面试题Struts2是一种基于Java的Web应用开发框架,它采用了MVC (Model-View-Controller)设计模式,用于简化Web应用的开发过程。
在面试中,面试官可能会提问一系列与Struts2相关的问题,以评估你对该框架的理解和掌握程度。
以下是一些可能出现的Struts2面试题及其详细解答。
1. 什么是Struts2框架?Struts2是一个开源的Java Web应用框架,它是Struts1的升级版。
它通过使用MVC设计模式来帮助开发者更好地组织并管理Web应用的各个模块。
2. Struts2与Struts1有什么区别?Struts2相对于Struts1来说有许多改进和升级。
其中一些主要区别包括:- Struts2采用基于标签的UI组件,使页面开发更简单。
- Struts2支持更灵活的表单验证机制。
- Struts2的拦截器机制更加强大,使开发者可以方便地定制请求的处理流程。
3. Struts2框架的核心组件是什么?Struts2的核心组件包括以下几个:- Action:用于处理用户请求的Java类。
- Interceptor:用于拦截和处理请求的组件。
- Result:用于呈现响应结果的组件。
- FilterDispatcher:用于将请求路由到正确的Action的组件。
4. Struts2框架的工作原理是什么?当用户发起一个请求时,FilterDispatcher首先会拦截该请求,并根据配置文件找到对应的Action类。
接着,该Action类会被实例化,并根据请求的参数进行处理。
处理完成后,Action会生成一个结果对象,然后由Result组件将结果呈现给用户。
5. Struts2框架如何处理表单验证?Struts2提供了一套强大的表单验证机制,通过在Action类中定义验证规则,可以对用户提交的表单数据进行校验。
验证规则可以通过配置文件或基于注解的方式进行定义。
Struts2面试题
###1.Struts2与Struts1的联系与区别?为什么要用Struts2?struts1与struts2都是mvc框架的经典实现模式。
Struts2不是从Struts1升级而来,而是有WebWork改名而来,而WebWork只是Xwork加了很多WEB拦截器而已区别:1.核心控制器改成了过滤器(过滤器比Servlet的级别要高,因为程序运行时是先进入过滤器再进入Servlet)2.struts1严重依赖于Servlet(因为太过于依赖于api的HttpServletRequest与HttpServletResponse的两个参数),struts2就则脱离了Servlet的API。
3.管理Action时struts1是单例模式,struts2是每个请求产生一个实例。
4.在表达式的支持上struts2不仅有jstl,还有功能更加强大的ognl表达式。
5.struts1的类型转换是单向的(页面到ActionForm),struts2是双向的(页面到Action 再到页面回显)6.校验,struts1没有针对具体方法的校验,struts2提供了指定某个方法进行效验,还有框架校验。
7.struts2提供了拦截器,利用拦截器可以在访问Action之前或之后增加如权限拦截等功能。
8.struts2提供了全局范围,包范围,Action范围的国际化资源文件管理实现。
9.struts2支持多种视图类型###2.Struts2的核心是什么,体现了什么思想?Struts2的核心是拦截器,基本上核心功能都是由拦截器完成,拦截器的实现体现了AOP(面向切面编程)思想###3.为何继承ActionSupport因为ActionSupport实现了Action接口,提供了国际化,校验的功能。
ActionSupport实现了国际化功能:因为它提供了一个getText(String key)方法实现国际化,该方法从资源文件上获取国际化信息。
struts2面试题(自己总结)
Struts2面试题1、struts2工作流程Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。
基本简要流程如下:1 、客户端初始化一个指向Servlet容器的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
Struts2考试题分析
题目1以下不属于Struts2中result的type属性( )A.actionB.redirectC.redirectActionD.dispatcher题目2下列有关拦截器说法错误的是通过拦截器完成执行action请求处理方法前一系列操作。
例如:数据封装、文件上传、数据校验等B.在struts中,直接访问jsp页面,struts将使用默认拦截器栈处理当前请求。
C.在执行action时,struts将执行若干拦截器1、2、3,执行action完成后,将继续执行拦截器3、2、1D. 默认情况,在一个action没有配置拦截器的引用,说明当前action将不使用拦截器题目3以下哪些是Action接口提供的返回值题目4如果要实现struts2的数据检验功能A普通的Action类可以实现B继承自Action接口的可以实现C继承自ActionSupport类可以实现D继承自ActionValidate类可以实现题目5struts2默认的处理结果类型是:题目6在值栈的上下文Context中,存在一些固定的key表示不同的对象,以下描述正确的是,表示request作用域的数据,表示session作用域的数据,表示application作用域的数据,表示请求参数的所有数据题目7以下属于struts2配置文件中的配置元素是:()多选)A.<package>B.<action>C.<form-beans>D.<action-mappings>题目8有关值栈context Map栈数据操作描述正确的是直接对context进行操作B.使用<s:property value="#key"/>获得context中指定key的内容将数据放置context 固定key为session对应的map中将数据放置context固定key为application对应的map中题目9有关<s:iterator/>描述正确的是属性的值对应值栈中的相关的数据B.默认情况,将遍历的每一个数据都临时压入到root的栈顶,遍历结束时再将数据移除C.如果使用var属性,在值栈的context中存放一个键值对D.如果使用status属性,可以获得当前遍历的状态。
struts框架面试题及答案
struts框架面试题及答案struts框架面试题及答案(一)1. 简单叙述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表单。
2 .叙述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()方法并执行。
3、FormBean的作用答:FormBean是一种JAVABean,除了具有JAVABean的常规方法,还包含一些特殊方法,用于验证表单数据,以及将其属性重新设置为默认值。
struts2复习题(含答案)5篇
struts2复习题(含答案)5篇第一篇:struts2复习题(含答案)Struts2复习题1.以下属于struts2的控制器组件是:A.ActionB.ActionFormC.ActionServletD.dispatchAction 2.以下属于struts2的体系结构的是:(多选)A.struts2控制器组件B.struts2配置文件C.FilterDispathcerD.Action 3.以下属于struts2配置文件中的配置元素是:(多选)A.B. C. D. 4.关于struts1和struts2对比的说法正确的是:A.struts1要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO类B.struts1中的Action不是线程安全的,而struts2中的Action 是线程安全的C.struts1和struts2中都使用ActionForm对象封装用户的请求数据D.struts1使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值5.以下关于ValueStack说法正确的是:(多选)A.每个Action对象实例拥有一个ValueStack对象B.每个Action对象实例拥有多个ValueStack对象C.Action中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中D.ValueStack会在请求开始时被创建,请求结束时消亡 6.关于struts2配置文件说法正确的是:A.必须在WEB-INF/classes目录下B.名字必须为struts.xmlC.配置Action时,必须配置包信息D.使用元素配置转发 7.在struts2配置中用()元素来配置常量: A. B. C. D.8.关于struts2包的说法正确的是:A.struts2框架使用包来管理常量B.struts2框架定义包时必须指定name属性C.struts2框架中配置包时,必须继承自struts-default包,否则会报错D.struts2框架中使用包来管理Action9.struts2中获取Servlet API的方法正确的是:(多选)A.使用ActionContext对象以解耦合的方法访问Servlet API B.使用ServletActionContext对象以解耦合的方式访问Servlet API C.使用ActionContext对象以耦合的方式访问Servlet API D.使用ServletActionContext对象以耦合的方式访问Servlet API 10.struts2动态调用的格式为: A.ActionName?methodName.actionB.ActionName!methodName.actionC.ActionName*methodName.action******************************11.如果要实现struts2的数据校验功能A.普通Action类可以实现B.继承自Action接口可以实现C.继承自ActionSupport类可以实现D.继承自ActionValidate类可以实现12.如果要实现自定义处理结果,需继承那个类A.DispathcerB.StrutsResultSupportC.SupportD.Action 13.实现动态返回结果,在配置元素时使用()指定视图资源A.${属性名}B.@{属性名}C.${'属性名'}D.${“属性名”} 14.用于实现国际化的struts2标签是:A.B. C.D. 15.struts2默认的处理结果类型是:A.dispatcherB.redirectC.chainD.forward 16.自定义转换器继承的抽象类是:A.ConverterB.TypeConverterC.StrutsTypeConverterD.converts 17.自定义转换器的注册方式有:A.只有全局注册方式B.只有局部注册方式C.只有全局和局部注册方式D.以上说法都不对18.自定义拦截器类的方式有:(多选)A.实现Interceptor接口B.实现AbstractInterceptor接口C.继承Interceptor类D.继承AbstractInterceptor类19.在struts.xml文件中,使用()元素定义拦截器A. B.C. D. 20.在OGNL中?操作符的作用是: A.取出符合选择逻辑的第一个元素B.取出符合选择逻辑的最后一个元素C.取出符合选择逻辑的所有元素 D.以上说法都不对21.以下属于struts2标签的是:(多选)A.Ajax标签B.数据访问标签C.logic标签D.bean标签 22.以下哪个标签是struts2中的用于循环迭代: A. B.C. D. 23.Struts2主要核心功能是由()实现a)过滤器 b)拦截器 c)类型转换器 d)配置文件24.Struts中的ActionServlet属于MVC模式()a)视图 b)模型 c)控制器 d)业务层25.Struts2框架由()和()框架发展而来的【选择二项】a)b)c)d)Hibernate Struts Spring WebWork 26.Struts2以(B)为核心,采用()的机制处理用户请求a)Struts b)WebWork c)拦截器 d)jar包27.struts2中,不属于Action接口中定义的字符串常量的是()a)SUCCESS b)FAILURE c)ERROR d)INPUT 28.struts2在控制器类中一般需要添加相应属性的()和()【选择二项】a)setter方法 b)as方法 c)getter方法 d)is方法29.struts2控制器需要在()配置文件中进行配置a)web.xml b)struts.xml c)application.porperties d)webwork.xml 30.不属于struts2标签库的是()在JSP页面中可以通过Struts2提供的()标签来输出国际化信息a) b) c) d) 31.资源文件的后缀名为()a)txt b)doc c)property d)properties32.a)b)c)d)33.a)b)c)d)34.a)b)c)d)35.a)struts2自定义类型转换器必须实现的接口是()Convert TypeConverter StrutsTypeConverter StrutsConvert struts2关于注册全局类型转换器的说法正确的是()【选择二项】必须提供xwork-conversion.properties文件注册文件的格式为:复合类型=对应类型转换器注册文件的格式为:对应类型转换器=复合类型以上说法都不正确struts2自定义拦截器中的“return invocation.invoke()”代码表示()【选择二项】不执行目标Action的方法,直接返回执行目标Action的方法在自定义拦截器中,该代码是必需的在自定义拦截器中,该代码是可选的struts2中,以下配置文件上传拦截器只允许上传bmp图片文件的代码,正确的是()image/bmpb)c)d)36.a)b)c)d)37.a)b)c)d)38.39.a)b)c)d)40.a)b)c)d)41.a)b)c)d)42.a)b)c)d)43.a)b)c)d)*.bmpbmpimage/*.bmp 以下关于OGNL的说法正确的是()【选择二项】ActionContext是OGNL的上下文环境 StackContext是OGNL的上下文环境 ValueStack是OGNL的根 ActionContext是OGNL的根假设在Session中存在名为uid属性,通过OGNL访问该属性,正确的代码是()#uid #session.uid uid ${session.uid}假设在某JSP页面中存在””代码,则以下说法正确的是()编译JSP页面时会出现错误编译JSP页面时不会出现错误,但页面不会显示任何内容该代码用于输出位于ValueStack(值栈)栈顶的对象以上说法都不正确struts2默认的处理结果类型是()dispatcher redirect chain 以上说法都不正确下列选项中,关于Struts2配置文件说法正确的是()必须置于WEB-INF/classes目录下必须为Struts.xml 配置Action时必须配置包信息使用元素配置转发下列选项中,关于Struts2的Action说法正确的是()【选择二项】struts2会为每一个请求创建一个对应的Action实例struts2在请求处理过程中,只有一个Action实例struts2通过属性来封装用户请求参数在struts2中定义的属性都用于封装用户请求参数struts2中动态方法调用的格式为()ActionName_methodName.do ActionName!methodName.doActionName_methodName.actionActionName!methodName.action问答题:MVC是什么含义?第三篇:struts2搭建Struts2环境时:1找到开发Struts2应用需要使用到的jar文件.2编写Struts2的配置文件3在web.xml中加入Struts2 MVC框架启动配置struts2-core-2.x.x.jar :Struts 2框架的核心类库xwork-2.x.x.jar :XWork类库,Struts 2在其上构建ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker 编写commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目1以下不届丁 Struts2中result 的type 届性()• A. actionB. redirect题目2下歹0有关拦截器说法错误的是?「A.struts 通过拦截器完成执行action 请求处理方法前一系歹U 操作。
例如: 数据封装、文件上传、数据校验等'B.在struts 中,直接访问jsp 页面,struts 将使用默认拦截器栈处理当前 请求。
厂C.在执行action 时,struts 将执行若干拦截器1、2、3,执行action 完成 后,将继续执行拦截器3、2、1'D.默认情况,在一个action 没有配置拦截器的引用,说明当前action 将不 使用拦截器题目3以下哪些是Action 接口提供的返回值?W A A. success,D B. noneC. error财 D.input题目4如果要实现struts2的数据检验功能 广A 普通的Action 类可以实现C. redirectActionD. dispatcher「B继承自Action接口的可以实现面C继承自ActionSupport类可以实现厂D继承自ActionValidate 类可以实现题目5struts2默认的处理结果类型是:• A.dispatcher' B.redirect「C.chainD. forward题目6在值栈的上下文Context中,存在一些固定的key表示不同的对象,以下描述正确的是?A. request,表示request作用域的数据'B.session,表示session 作用域的数据阿 C.application ,表示application 作用域的数据* D.parameters ,表示请求参数的所有数据题目7以下届丁struts2配置文件中的配置元素是:()多选)A. <package>B. <action>厂 C.<form-beans>厂 D.<action-mappings>有关值栈context Map栈数据操作描述正确的是?W A.ActionContext.getContext().put(key,value) 直接对context 进行操作W B.使用<s:property value="#key”/> 获得context 中指定key 的内容财 C.ActionContext.getContext().getSession().put(key,value); 将数据放置context 固定key 为session 对应的map中巧 D.ActionContext.getContext().getApplication().put(key,value); 将数据放置context 固定key 为application 对应的map中题目9有关<s:iterator/> 描述正确的是?财A.value届性的值对应值栈中的相关的数据'B.默认情况,将遍历的每一个数据都临时压入到root的栈顶,遍历结束时再将数据移除阿C.如果使用var届性,在值栈的context中存放一个键值对阿D.如果使用status届性,可以获得当前遍历的状态。
例如:遍历的索引,是否为奇偶等题目10token令牌机制,下面说法正确的是?'A.如果要使token可用,必须在jsp表单中提供<s:token /> , struts.xml 使用token拦截器厂B.在struts2默认的拦截器栈中包含token拦截器回C.<s:token>标签的作用在jsp页面生成一个隐藏域数据'D.token拦截器可以通过includeMethods届性设置需要进行拦截的方法卜歹0有关ValueStack内部结构描述正确的是?W A.ValueStack内部有两个逻辑部分:root和contextW B.ValueStack 的上下文context 中存放了request、session、application 的引用• C.ValueStack的root部分,可以用丁存放对象。
在jsp页面中通过struts 标签,可以使用对象的届性,直接获得需要的数据。
阡 D.ValueStack的context部分,struts 将使用key=value的形式存放数据, 在jsp 页面中通过struts标签,可以使用” #key”方式获指定的数据题目12在struts2 配置中用()元素配置常量A. <action>B. <package>C. <constant>D. <include>题目13下歹0有关访问struts2的action ,说法错误的是?厂A.action的访问路径,需要使用<package>标签的namespaceH性的值和<action>标签的nameM性的值B. 如果访问路径是” /primer/helloWorldAction”,并在页面中成功显示, <package>标签的namespace届性值可以是” /primer ”「C.在配置<action>时,其中class届性是用来请求访问的Action类。
面D.在struts.xml文件中必须配置拦截器题目14在Struts2中,可以在哪些配置文件中配置常量()多选J A.struts.xml'B.struts.properties财 C.web.xml厂 D.server.xml题目15下面有关struts2配置文件说法正确的是?巧A.default.properties 文件,struts2 提供的默认常量配置文件'B.struts-default.xml 文件,struts2 提供默认功能实现配置文件。
此文件中提供大量的拦截器,结果集类型等'C.struts.xml文件,是struts2预留给框架使用者,编写自定义配置信息的「 D.struts-default.xml , struts-plugin.xml 和struts.xml 文件加载是没有顺序的题目16在<action>元素中,那个届性可以指定Action中要执行的方法的名称()"A.methodcB. nameC. classD. methodName题目17以下配置文件,哪些是struts2 的?J A.default.properties「 B.action.xml厂 C.struts2.xmlW D.struts.xml题目18有关值栈root对象栈数据操作描述正确的是?'A.valueStack.push(obj) 将指定的对象压入到栈顶• B.在jsp页面,可以使用<s:property/> 获得栈顶的数据厂C.valueStack.getRoot() 不能获取对象栈'D.在jsp页面,可以使用<s:property value="name”/>获得对象栈中name 届性的值题目19下列哪个校验器可以校验“两次密码输入不一致”()A. requiredB. requiredstringC. stringlength"D.fieldexpression关丁struts2 哪些api是正确的?A. ServletActionContext.getRequest() 可以获得HttpServletRequest'B.ServletActionContext.getResponse() 可以获得HttpServletResponse'C.ServletActionContext.getServletContext() 可以获得ServletContext• D.ServletActionContext.getRequest().getSession() 可以获得HttpSession题目21struts2 action 类的编写,下歹U说法正确的是?• A.action类可以不继承任何类,不实现任何接口'B.action类可以实现struts提供的接口Action'C.action 类可以继承ActionSupport'D.action类中请求处理方法,必须是共有的,方法名称自定义,且没有参数题目22struts2动态方法调用的格式为:A. ActionName?methodName.action• B.ActionName!methodName.actionC. ActionName*methodName.action厂D.题目23下列哪个结果类型用来转发到Action ()单选pA.dispatcherB. chainC. redirectActionD. stream题目24.在Action接口中提供的5个逻辑视图代表表单输入错误会跳转的视图名称是()A. SUCCESSB. ERRORC. INPUTD. LOGIN题目25卜列有关,表单回显正确的是?'A.只要将数据放置到request作用域,struts表单标签可以根据nameH性进行回显「B.只要将数据放置到session作用域,struts表单标签可以根据nameH性进行回显' C.只要将数据放置到application 作用域,struts表单标签可以根据name 届性进行回显倍D.只要将数据放置到对象栈root中,struts表单标签可以根据nameM性进行回显题目26struts2在控制器类中一般需要添加相应届性的A.setter 方法厂B. as方法回C.getter方法厂D.is方法题目27当类型转换失败时,Struts会自动跳转到()结果单选A.errorB.successC. login 31D.input题目28卜列哪个常量用来配置Action的扩展名()单选A.struts.i18n.encoding1 B.struts.action.extensionC. struts.serve.static.browserCacheD. struts.devMode题目29请看代码form.jsp<s:form action= ” myAction” namespace=” /” theme= ” simple” >用户名:<s:textfield name= ” username” /><br/>密码:<s:password name= ” password” /><br/><s:submit value= ”提交” /></s:form>struts.xml<package name=' xxx” namespace=” /” extends= ” struts -default ” > <action name= " myAction" class= " cn.itcast.web.action.MyAction " /></package>User.javapublic class User (private String username;private String password;public void setUsername(String username) ( this. username = username;}public void setPassword(String password) ( this. password = password;}}MyAction.javapackage cn.itcast.web.action;public class MyAction extends ActionSupport implementsModelDriven<User>{private User user = new User();private String username;private String password;public void setUsername(String username) { this. username = username;}public void setPassword(String password) { this. password = password;}public User getModel() {return er;}public String execute() {System.out.println(username + ", " + password);return null;}}当在form.jsp表单中,向用户名中输入zhangSan,向密码中输入123后提交, 控制台会有什么样的输出结果()单选• A.null, nullB.zhangSan, 123D. 抛出异常题目30下歹0对stringlength 校验器描述正确的是()面 A.可以配置minLength和maxLength参数厂B.可以配置min和max参数厂C.没有参数「D.可以配置minLength和maxLength,以及min和max参数题目31下列有关值栈描述错误的是?'A.valueStack是单例的,用丁存放struts需要存放的数据厂B.值栈被保存在HttpServletRequest 作用域中* C.可以通过ActionContext.getValueStack() 获得值栈「 D.可以通过ActionContext.getContext().getValueStack() 获得值栈题目32下歹0对局部xml配置校验说法正确的是()多选• A.配置文件必须放到当前Action同包下卬B.配置文件名称必须是“当前Action类名-当前<action>的name名称-valid ation.xml ”卬C.在Action类中无需编写任何与参数校验相关的代码D. 可以使用@InputConfig注解来自定义校验失败后跳转的结果以下有关struts.xml 文件描述正确的是?面A.struts.xml 文件必须放置在src下面厂B.struts.xml 文件中只能配置一个package「C.struts.xml 文件可以放置在WEB-INF7!录下「D.struts.xml文件名称可以自定义,只要以struts开头就可以题目34以下结果类型描述正确的是?回A. redirect ,将请求重定向到另一个资源,一般重定向到jsp页面。