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处理之前和处理之后,加入用户自定义代码;它的作用:进行权限控制,跟踪日志,跟踪系统瓶颈区别:一个拦截器栈可以包含多个拦截器,一个拦截器可以完成一组特殊功能。
- 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页面。