STRUTS2模拟(答案)
- 格式:wps
- 大小:41.00 KB
- 文档页数:3
基于。
Net的需求分析和解决方案模拟题一一、单选题:(本题共20题,每题1分,共20分)1.MSF风险管理过程定义了六个逻辑步骤,下列中不包括那一项___A)风险识别 B)风险计划C)风险控制 D)风险报告2. 以下各项中,不是构思阶段交付的成果的是___A)远景/范围 B)项目结构C)风险评估 D)解决方案设计策略3.概要设计有三个步骤以及相关基准,下列中不属于的是__A) 调研 B)概要说明书C)分析 D) 优化4.统一建模语言UML定义了四种关系,下列中不属于的是__A)依赖 B)关联C)聚合 D) 派生5.MSF过程模型由五个阶段组成,其中下列不包含的是那个阶段___A)构思 B)计划C)开发D)设计6. 以下对“零缺陷”阶段描述正确的是__A)“零缺陷”阶段就是要保证软件不存在任何缺陷了B)“零缺陷”阶段是指一段时间内所有已知的缺陷都解决了C)“零缺陷”阶段度过后软件就是可以放心交付了D)“零缺陷”阶段只需要解决以前发现的所有缺陷7. 构思阶段,团队执行的主要任务中,不包括那些___A)建立团队 B)定义项目结构C)定义商业目标 D)创建远景说明E) 评估当前情况 F)建立需求分析8.设计阶段共有三个,其中那一项不包括__A)概要设计 B)概念设计C逻辑设计 D) 物理设计9.以下那些对微软解决方案框架(MSF)的表达是错误的___A)MSF是一个瀑布型的开发方式B) MSF 是一个螺旋型的开发方式C)MSF 与其他的开发方式不能同时应用在一个项目中D)MSF 中没有项目经理这一角色10.平衡三要素优先级中,定义范围意味着平衡各类最终用户的需要,考虑客户规定的其他优先级,几个变量可能会影响项目成败,这几个变量包括成本、资源进度表、功能和__A)可用性 B)可靠性C)可变性 D) 可定性11.下列选项中不包括功能说明书的元素的主体内容是___A)概念设计摘要 B)用例C)使用场景 C)建模12. 下列选项中不包括业务需求分类的是________A)用户 B)系统C)业务 D)场景13.物理设计的交付结果中,一下选项,______不是他的主成果?A)网络拓扑 B)有伪代码的初步用户界面C)解决方案的数据库架构 C)基线部署模型14.物理设计的四个步骤是:调研、分析、合理化和____A)实现 B)约束C)打包 D)部署15.下列选项中不属于良好的用户界面的特点的是____A)直观设计 B)易于导航C)打开页面的速度 D)输出验证16.在数据库设计一对一的关系中,实体的一个实例与其他的实体的对应实例直接相关。
填空:1.Struts 2以_过滤器_为核心,采用_矜截器_的机制来处理用户的请求。
2.构逮Struts 2应用的最基础的几个类库是_struts2-core_、_commons-logging_、_xwork-core_^ _freamarker _____ 以及_ognl_。
3.Struts 2屮的控制器类是一个普通的_POjO_。
4.如果要在jSP页面屮使川Struts 2提供的标签库,酋先必须在页面屮使川taglib编译指令导入标签库•,其中taglib 编译指令力_<%@ taglib prefix=”s” uri=”strut-tags”%> _________ 。
5 .在Struts 2表华标签序•中,表単标签为__ <s:form/> _____ 。
6.ActionSupport 类实现了_action __________ 接U和_ validateable ________ 等接UI。
7.通过控制器类屮的 __ validate() ______ 方法来输出校验错误信息。
8.在Hibernate XML影射文件中描述主键生成机制,.其属性描述了主键的生成策略,至少写出三种策略名increment 、native 、uuid 。
9.在Hibernate中级联操作的属性值至少写出三个____________________ none ______ 、_____ s ave-update ______ 、__ all ______ o10 Hibernate 的会ffi接口是____ Session 接口_____ ,它山接口 _SessionFactory 接口_创建;Hibernate处理事务的接口是______ Transaction接口 _______ :封妓HQL的接口足_____ C riteria 接口_____ 011. Struts2框架山 _____ Struts ______ 和_____ WebWork _____ 框架发展而来。
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模拟测试(开卷——定时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表单标签库的是___________。
一、填空:1.Struts 2框架由__webWork______和___xWork_框架发展而来。
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。
Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Navigation Language),IoC(Inversion of Control倒置控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。
其特点是:1、基于一个简单的接口就可以进行灵活且可自定义的配置;2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;3、整个框架通过类型转换和使用OGNL的action属性验证来构建;4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
Xwork和WebWork的关系WebWork2 被构建在XWork之上,以XWork为基础。
通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
xwork和Webwork的交互图2.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。
3.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。
4.Struts 2中的控制器类是一个普通的_POJO_。
5.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___ <taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/lib/struts2-core-2.0.11.1.jar</taglib-location></taglib> ________。
struts⾯试题及答案【重要】1. 简述 Struts2 的⼯作流程:①. 请求发送给 StrutsPrepareAndExecuteFilter②. StrutsPrepareAndExecuteFilter 判定该请求是否是⼀个 Struts2 请求(ActionMapping判断),不是就放⾏。
(根据路径的后缀是 .action或者.doj进⾏判断)public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) res;try {if (excludedPatterns != null && prepare.isUrlExcluded(request, excludedPatterns)) {chain.doFilter(request, response);} else {prepare.setEncodingAndLocale(request, response);prepare.createActionContext(request, response);prepare.assignDispatcherToThread();request = prepare.wrapRequest(request);ActionMapping mapping = prepare.findActionMapping(request, response, true);if (mapping == null) {boolean handled = execute.executeStaticResourceRequest(request, response);if (!handled) {chain.doFilter(request, response);}} else {execute.executeAction(request, response, mapping);}}} finally {prepare.cleanupRequest(request);}}③. 若该请求是⼀个 Struts2 请求,则 StrutsPrepareAndExecuteFilter 把请求的处理交给 ActionProxypublic void serviceAction(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping) throws ServletException {Map<String, Object> extraContext = createContextMap(request, response, mapping);// If there was a previous value stack, then create a new copy and pass it in to be used by the new ActionValueStack stack = (ValueStack) request.getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);boolean nullStack = stack == null;if (nullStack) {ActionContext ctx = ActionContext.getContext();if (ctx != null) {stack = ctx.getValueStack();}}if (stack != null) {extraContext.put(ActionContext.VALUE_STACK, valueStackFactory.createValueStack(stack));}String timerKey = "Handling request from Dispatcher";try {UtilTimerStack.push(timerKey);String namespace = mapping.getNamespace();String name = mapping.getName();String method = mapping.getMethod();ActionProxy proxy = getContainer().getInstance(ActionProxyFactory.class).createActionProxy(namespace, name, method, extraContext, true, false);request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, proxy.getInvocation().getStack());// if the ActionMapping says to go straight to a result, do it!if (mapping.getResult() != null) {Result result = mapping.getResult();result.execute(proxy.getInvocation());} else {proxy.execute();}// If there was a previous value stack then set it back onto the requestif (!nullStack) {request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);}} catch (ConfigurationException e) {logConfigurationException(request, e);sendError(request, response, HttpServletResponse.SC_NOT_FOUND, e);} catch (Exception e) {if (handleException || devMode) {sendError(request, response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);} else {throw new ServletException(e);}} finally {UtilTimerStack.pop(timerKey);}}④. ActionProxy 创建⼀个 ActionInvocation 的实例,并进⾏初始化public ActionInvocation getInvocation() {return invocation;}⑤. ActionInvocation 实例在调⽤ Action 的过程前后,涉及到相关拦截器(Intercepter)的调⽤。
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中的组件,用于在请求处理的各个阶段添加自定义的逻辑。
试验目的:•熟悉S t r u t s 2框架的基本组成。
•掌握S t r u t s 2应用的配置基础。
试验大纲:•掌握S t r u t s 2的引入和配置。
•掌握A c t i o n的编写和配置。
•掌握A c t i o n的访问。
试验任务:•创建办公自动化J a v a W e b项目o a w e b 。
•配置S t r u t s 2框架( 引入J A R, 修改w e b . x m l ) 。
•创建S t r u t s的配置文件s t r u t s . x m l 。
•创建用户增加页面“/ u s e r / a d d . j s p ”,显示的表单和表单元素如表1 - 3所示。
表1 - 3 表单及表单元素表单表单元素账号文本框密码密码框姓名文本框简介文本域提交按钮•创建用户增加处理A c t i o n “ a c t i o n . U s e r A d d A c t i o n ”, 编写 A c t i o n处理方法e x e c u t e ( ) , 并在自己的配置文件中配置p a c k a g e 、 a c t i o n和r e s u l t( 1 )取得输入的用户信息。
( 2 )如果账号、密码、姓名任何一个为空, 则自动跳转到增加页面。
2 1( 3 )如果账号、密码、姓名都不为空, 则直接在A c t i o n 中连接数据库, 将用户信息增加到用户表中, 数据库和用户表自己确定。
( 4 )增加用户成功后自动跳转到用户主页“/ u s e r / m a i n . j s p ”。
( 5 )如果增加失败, 自动跳转到用户增加页面“/ u s e r / a d d . j s p ”。
•编写用户主页“/ u s e r / m a i n . j s p ”。
显示的“增加新用户成功! 继续增加新用户”信息中“增加新用户”为超链接, 单击后可自动跳转到用户增加页面。
选择题(针对以下题目,选择符合题目要求的答案。
针对每一道题目,全选对,则该题得分;所选答案错误或漏选,则该题不得分。
每题2分。
)1.在struts2配置中用()元素来配置常量。
A. <const>B. <constants>C. <constant>D. <constant-mapping>2.一个持久化类的实例可能存在的状态有( A B D )。
[选三项]A.瞬态 B.持久态 C.隔离态 D.游离态3.在Struts2中,Action处理后的默认结果(result标签)类型是()。
A.Dispatcher B.redirectC.Chain D.以上说法都不正确4.hibernate增加数据的时候可以调用session的( A D )方法。
[选两项]A.save B.update C.add D.saveOrUpdate5.Hibernate对JDBC访问数据库的代码作了封装,从而大大的简化了数据访问层的重复性代码,它是针对三层架构中()的解决方案。
A.表现层 B.业务逻辑层 C.持久层 D.数据层6.事务隔离级别是由( C )实现的。
A.Java应用程序 B.Hibernate C.数据库系统 D.JDBC驱动程序7.关于Spring与Hibernate集成,以下说法错误的是( A )。
A. 通过集成Spring与Hibernate,以Spring管理程序的依赖关系,将SessionFactory注入DataSourceB. 通过Spring,在Biz层代码中无须直接实例化DAO类,而是通过注入获得C. 通过Spring,在DAO类中无须实例化SessionFactory,而是通过注入获得D. Spring提供HibernateDaoSupport类来简化Hibernate的使用8.Struts2动态调用的格式为()。
A. ActionName?methodName.actionB. ActionName! methodName.actionC. ActionName*methodName.actionD.ActionName@mathodName.action9.在Hibernate中,()接口提供了用于保存、更新、加载和删除实体对象的方法。
STRUTS2模拟测试(开卷——定时90分钟)
一、填空题
1.Struts2框架由___________和___________框架发展而来。
(Struts&WebWork )
2.Struts2以___________为核心,采用___________的机制来处理用户的请求。
(WebWork,拦截器)
3.构建Struts2应用的最基础的几个类库是___________、___________、___________、___________以及
___________。
4.Struts2中的控制器类是一个普通的___________。
Class
5.如果要在JSP页面中使用Struts2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为___________。
<%taglib uri="/struts-tags" prefix="s"%>
6.在Struts2表单标签库中,表单标签为___________。
<s:form>
7.ActionSupport类实现了___________接口和___________等接口。
8.通过控制器类中的___________方法来输出校验错误信息。
二、选择题
1.不属于Action接口中定义的字符串常量的是___________。
B
A.SUCCESS B.FAILURE
C.ERROR D.INPUT
2.在控制器类中一般需要添加相应属性的___________和___________。
AC
A.setter方法 B.as方法
C.getter方法 D.is方法
3.控制器需要在___________配置文件中进行配置。
B
A.web.xml B.struts.xml
C.struts2.xml D.webwork.xml
4.不属于Struts 2表单标签库的是___________。
D
A.<s: textfield > B.<s: textarea >
C.<s: submit > D.<select>
5.在JSP页面中可以通过Struts 2提供的___________标签来输出国际化信息。
D
A.<s: input > B.<s: texts >
C.<s: submit > D.<s:text>
6.资源文件的后缀名为___________。
D
A.txt B.doc C.property D.Properties
三、简答题
1、简述什么是MVC?
MVC即模型-视图-控制器.MVC是一种设计模式,它强制把应用程序的输入处理和输出分开.视图是用户看到并与之交互的界面。
视图向用户显示相关的数据,并能接受用户的输入,但是它并不进行任何实际的业务处理。
模型是应用程序的主体部分。
模型表示业务数据和业务逻辑。
控制器接受用户的输入并调用模型和视图去完成用户的需求
2、列举struts2 web应用中常用的4个.jar文件。
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
struts2-core-2.0.14.jar
ognl-2.6.11.jar
xwork-2.0.7.jar
3、简述servlet的生命周期。
Servlet被服务器实例化后,容器运行其init()方法,请求到达时运行其service()方法,service()方法自动派遣运行与请求对应的doGet、doPost方法等,当服务器决定将实例销毁的时候调用其destroy方法
4、用自己的话简要阐述struts2的执行流程。
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。
基本简要流程如下:1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
5、简述Struts1和Struts2的不同点
四、代码题
1、给出以下Action的Struts.XML配置文件描述(注1:请求为Test/Hello_onPlay.go)
package com.yourcompany.action;
public class HelloWorldAction
{
private String message;
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
public String onPlay() throws Exception
{
System.out.println(this.getMessage());
return "success";
}
public String execute() throws Exception
{
System.out.println(this.getMessage());
return "success";
}
}
2、请给出Struts2验证框架关于Email格式,年龄在1-100之间,提交非空的配置文件。
3、请给出OGNL中从valueStack,Session,Request三种作用域中或得userName属性对应value的代码
4、请编写一个拦截器,该拦截器可以获得用户输入的用户名这个数据,业务逻辑为逐个判断用户名中是否包含“你”,“我”,“他”三个数据,如果包含则直接返回输入页面,如果不包含则运行至PersonAction。
(除代码外,要给出拦截器和Action的配置文件)。