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) SUCCESS B) FAILURE C) ERROR D) INPUT
5. 资源文件的后缀名为( D )?
A) txt B) doc C) property D) properties
6. 在JSP页面中可以通过Struts 2提供的( D )标签来输出国际化信息。
A)
7. 以文字过滤拦截器为例,简述拦截器的使用步骤。 答:1-用户提交自己的请求;
2-由web.xml拦截,转发到action进行处理;
3- Struts.xml根据相应的action配置,调用相应的方法来处理,并根据结果转发到不同的页面;
8. 在同一个系统中配置多个拦截器,试说明它们的执行顺序。 答:一般来说:先配置的拦截器,会先获得执行的机会,但是实际情况不是这样。execute()方法执行之前,配置在前面的拦截器,会先对用户的请求起作用。execute()方法执行之后,配置在后面的拦截器,会先对用户的请求起作用。(两头向中间靠拢的执行)。
9. 请简述struts2中输入校验的几种方式。
答:客户端校验:在客户端用过使用javascript脚本对用户输入的数据进行校验; 服务器校验:在服务器端对数据进行校验。
10. 使用配置方式实现输入校验有哪两种方式?它们的命名规则是?如果同时配置了两种方式,寻找校验文件的顺序是?
答:-1 重写validate()方法实现和validateXxx()方法实现; -2 命名规则:必须以validate开头 ;
-3 顺序:当被请求的action方法处理逻辑还有相应的validateXxx()方法。那么该校验方法将在validate()校验之前进行 。
11. 校验器配置风格有哪两种?举例解释使用标签的含义。
答:-1 一种是字段优先,称为字段校验器风格;一种是校验器优先,称为非字段校验器风格。
-2 字段校验器:以
-3 非字段校验器: 以
12. Struts 2哪些内置校验器支持客户端校验?以及如何通过Struts 2标签自动生成客户端校验代码? 答:必填校验器(required)
必填字符串校验器(requiredstring) 字符串长度校验器(stringlength) 整数校验器(int) 日期校验器(date)
邮件地址格式校验器(email) 网址格式校验器(url) 转换校验器(conversion)
表达式校验器(expression)
字段表达式校验器(fieldexpression) 正则表达式校验器(regex)
13. 自定义校验器必须实现哪个接口?注册校验器的配置文件应如何命名? 答:实现com.opensymphony.xwork2.validator.Validator;接口;配置文件必须以validate.xml命名;
14. 按照自己的理解,谈谈自定义类型转换器的方法。 答:1 继承DefaultTypeConverter类; 2 注册局部类型转换器方法
在Action所在的目录下,创建ActionClassName-conversion.properties文件,文件内容格式syntax:
在classpath的根下创建 xwork-conversion.properties 文件,文件内容语法:syntax:
A) ActionName?methodName.do。 B) ActionName!methodName.do。 C) ActionName?methodName.action。 D) ActionName!methodName.action。
16什么是国际化?国际化资源文件的命名格式是?
答:国际化是(i18n)指的是软件设计阶段,就应该使软件具有支持多种语言和地区的功能、这样,
当需要在应用中添加对一种新语言和国家的支持是不需要对已有的软件返工,不需要修改的代码; java资源文件的命名可以有3种格式: basename_language_country.properties basename_language.properties basename_properties
17.在页面中使用(
答:加载全局范围资源文件,加载包范围资源文件 ,加载action范围资源文件,加载临时指定范围内的资源文件;
19.按照你的理解,谈谈如何实现自由选择语言环境?
答:Struts 2提供一个名字为i18n的拦截器,并已把该拦截器添加到默认拦截器中。
i18n拦截器自动查找客户端请求中名字为request_locale的参数,并根据该参数实例化一个Locale对象。
Struts 2会把Locale保存在Session中的一个名字为WW_TRANS_I18N_LOCALE的属性中,该属性值将会作为浏览器默认的Locale.
20.请画出OGNL上下文的结构示意图。解释如何访问OGNL上下文的对象?常常需要配合哪个Struts标签使用? 答:
添加值栈,将值存放到值栈里面,在页面访问方式# 配合
21.Struts 2默认响应请求的后缀名是.action,若要配置Struts 2只处理以.do为后缀名的请求,有哪些方法?若要处理多个后缀又当如何?
答:1 .可以修改struts.xml 和struts.properties来修改默认的配置, 在struts.xml中
或者是修改struts.properties文件添加struts.action.extension = do这都是一样的效
果
注意:struts.xml 和struts.properties的都放在src下发布的时候会自动拷贝到WEB-INF/classes下
2. 在web.xml里面的filter中加入
22.实现在Action中访问Servlet API有哪几种方法?
答:直接访问方式 ,间接访问方式,ioc和非ioc方式;
23.Struts 2文件上传需要用到那两个包?根据你的理解,谈谈实现文件上传的步骤。
答:Comons-fileupload-1.2.1.jar 和 commons-io-1.2.1.jar 第一步:在web-inf/lib下面添加必须的jar文件
第二步:把form表单的enctype设置为“multipart/form-data”; 第三步:在action类中;添加必要属性: private File upload;//得到上传文件的类型 private String uploadFIletype;//文件类型 private String uploadFileName;//文件名称
24.在strutrs2中数据验证失败时,通过( D )标签显示错误信息。
E)
25.以下配置文件上传拦截器只允许bmp图片文件代码,正确的是(D )。
I)
K)
M) 只有testInterceptor. N) 只有demoInterceptor. O) 都不起作用。 P) 同时起作用。
27.假设在Session中存在名称为uid属性。通过OGNL访问该属性。真确的代码是(B )
Q) #uid。
R) #session.id。 S) uid 。
T) ${session.id}。
28.如下代码说法正确的是( AD )(多选)
U) 奇数行为黄色 V) 偶数行为黄色 W) 奇数行为红色 X) 偶数行为红色
29.下面代码运行的效果是( B )
<%String url=\生成超链接\ pageContext.setAttribute(\ %>
Y) 生成超链接 Z) 生成超链接。 AA) 找不到对象。 BB) 什么都不输。
30.简述如何用拦截器解决表单重复提交问题?
答:第一步:在表单中加入
第二步:在struts.xml中添加如下配置token拦截器