struts复习模拟题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s t r u t s复习模拟题文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]
填空:? 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_________接口和
___validateable________等接口。
?
7.通过控制器类中的____validate()_______方法来输出校验错误信息。
? 8.?在Hibernate?XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略
名???increment??????、??native???????、????uuid?????。
??
9.?在Hibernate中级联操作的属性值至少写出三个____none_______?、
_____save-update______、____all_______。
?
10?Hibernate的会话接口是?______Session接口_____,它由接
口?__SessionFactory接口__创建;Hibernate处理事务的接口是
____Transaction接口_______;封装HQL的接口是_____Criteria接口
______?。
?
11.Struts2框架由_____ Struts ______和______ WebWork _____框架发展而来。
12.Struts2中的控制器类是一个普通的____Class_______。
13.注入资源的注释是____@Resource?___?
1、简述什么是MVC?
答:MVC即模型-视图-控制器.MVC是一种设计模式,它强制把应用程序
的输入处理和输出分开.视图是用户看到并与之交互的界面。
视图向用
户显示相关的数据,并能接受用户的输入,但是它并不进行任何实际的
业务处理。
模型是应用程序的主体部分。
模型表示业务数据和业务逻
辑。
控制器接受用户的输入并调用模型和视图去完成用户的需求
2、用自己的话简要阐述struts2的框架由哪几部分组成,struts2的执行流
程是怎样的?
答:Struts 2框架本身大致可以分为3个部分:核心控制器
FilterDispatcher、业务在控制器Action和用户实现的企业业务逻辑
组件。
核心控制器FilterDispatcher是Struts 2框架的基础,包含了
框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件
是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同
时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来
使用。
Struts 2的工作流程与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 响应到客户端浏览器。
3、struts2的web里需要配置什么?
<filter>
<!-- 配置Struts2核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 配置Struts2核心Filter的实现类 -->
<filter-class></filter-class>
</filter>
<!-- 配置Filter拦截的URL -->
<filter-mapping>
<!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、输出值的strtus标签、循环的struts标签、判断的strtuts标签分别
是什么?
<s:property>、<s:iterator>、<s:if></s:if>
<s:else></s:else><s:elseif></s:elseif>
5、要调用struts标签需要导入什么?
<%@taglib uri="/struts-tags" prefix="s" %>
6.列举struts2 web应用中常用的4个.jar文件。
7.简述servlet的生命周期。
Servlet被服务器实例化后,容器运行其init()方法,请求到达时运行其service()方法,service()方法自动派遣运行与请求对应的doGet、doPost方法等,当服务器决定将实例销毁的时候调用其destroy方法
一、编程题
参考答案
<struts>
<package name="default"namespace="/"extends="struts-default"> <action name="Hello"class=>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
<package name="test" extends="struts-default" namespace="/Test">
<action name="Hello_onPlay.go"
<result name="suceess"></result>
</action></package>
参考答案:从valueStack取值:<s:property value="erName"/>从Session取值:<s:property value="#erName"/>
从Request取值:<s:property value=/>
参考答案:struts.xml配置文件主要内容:
<package name="default"namespace="/"extends="struts-default"> <interceptors>
<interceptor name="personIcpt"class=></interceptor>
</interceptors>
<default-interceptor-ref name="personIcpt"></default-interceptor-ref>
<action name="person"class=>
<result name="index">/index.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
拦截器类:
package
import
import
import
import
public class PersonInterceptor extends AbstractInterceptor{ @Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ac=invocation.getInvocationContext();
Map parameters=ac.getParameters();
String[] params=(String[]) parameters.get("username");
String username=params[0];
if(username.contains("你")||username.contains("我
")||username.contains("他")){
return"index";
}
else
{
PersonAction action=(PersonAction)
invocation.getAction();
action.setUsername(username);
return invocation.invoke();
}
}
}
5.请给出Struts2验证框架关于Email格式,年龄在1-100之间,提交非空的配置文件。
<validators>
<field?name="student.sname">
<field-validator?type="requiredstring">
<param?name="doTrim">true</param>
<message>用户名不能为空</message>
</field-validator>
<field-validator?type="stringlength">
<param?name="minLength">2</param>
<param?name="maxLength">6</param>
<message>用户名长度不能小于${minLength}字符,
不能大于${maxLength}</message>
</field-validator>
</field>
<field?name="student.sage">
<field-validator?type="int">
<param?name="min">1</param>
<message>年龄不能小于${min}!!!</message>
</field-validator>
<field-validator?type="int">
<param?name="max">100</param>
<message>年龄不能大于${max}!!!</message>
</field-validator>
<field-validator?type="requiredstring">
<param?name="doTrim">true</param>
<message>年龄不能为空!</message>
</field-validator>
</field>
<field?name="student.semail">
<field-validator?type="email">
<param?name="emailAddressPattern">[a-z]</param> <message>邮箱的格式不正确!</message>
</field-validator>
<field-validator?type="requiredstring">
<param?name="doTrim">true</param>
<message>email不能为空</message>
</field-validator>
</field>
</validators>。