《最新Struts2练习题.doc》由会员分享,可在线阅读,更多相关《最新Struts2练习题.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateStruts2练习题Struts 2作业Struts 2作业1. 简述什么是MVC?答: MVC的全称为model-view-controller(模型-视图-控制器)。MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC开发出来的应用程序一般包括以下几块内容:控制器(Controller):控制器类处理客户端向Web应用程序
2、发出的请求,获取数据,并指定返回给客户端,用来显示处理结果的视图。模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻辑,用来使得这些数据必须符合业务逻辑。视图(View):视图类是Web应用程序中用来生成并显示HTML格式的服务器端对客户端请求的响应结果的模板文件2. Struts 2以( WebWork )为核心,采用( 拦截器 )的机制来处理用户的请求。3. 简述一个请求在Struts 2框架中的处理流程,请按自己对框架的理解叙述。答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3-Struts.xml根据相应的action配置
3、,调用相应的方法来处理,并根据结果转发到不同的页面。4. 不属于Action接口中定义的字符串常量是( B )?A) SUCCESSB) FAILUREC) ERRORD) INPUT5. 资源文件的后缀名为( D )?A) txtB) docC) propertyD) properties6. 在JSP页面中可以通过Struts 2提供的( D )标签来输出国际化信息。A) B) C) D) 7. 以文字过滤拦截器为例,简述拦截器的使用步骤。答:1-用户提交自己的请求;2-由web.xml拦截,转发到action进行处理;3-Struts.xml根据相应的action配置,调用相应的方法来处
4、理,并根据结果转发到不同的页面;8. 在同一个系统中配置多个拦截器,试说明它们的执行顺序。答:一般来说:先配置的拦截器,会先获得执行的机会,但是实际情况不是这样。execute()方法执行之前,配置在前面的拦截器,会先对用户的请求起作用。execute()方法执行之后,配置在后面的拦截器,会先对用户的请求起作用。(两头向中间靠拢的执行)。9. 请简述struts2中输入校验的几种方式。答:客户端校验:在客户端用过使用javascript脚本对用户输入的数据进行校验;服务器校验:在服务器端对数据进行校验。10. 使用配置方式实现输入校验有哪两种方式?它们的命名规则是?如果同时配置了两种方式,寻找
5、校验文件的顺序是?答:-1重写validate()方法实现和validateXxx()方法实现; -2命名规则:必须以validate开头; -3顺序:当被请求的action方法处理逻辑还有相应的validateXxx()方法。那么该校验方法将在validate()校验之前进行。11. 校验器配置风格有哪两种?举例解释使用标签的含义。答:-1一种是字段优先,称为字段校验器风格;一种是校验器优先,称为非字段校验器风格。 -2字段校验器:以指定action中校验的属性指定校验器,message为校验器的失败提示信息key为国际化资源文件中的key -3非字段校验器:以为基本元素。Type指定该元素
6、的类型,Param指定传人参数。12. Struts 2哪些内置校验器支持客户端校验?以及如何通过Struts 2标签自动生成客户端校验代码?答:必填校验器(required)必填字符串校验器(requiredstring)字符串长度校验器(stringlength)整数校验器(int)日期校验器(date)邮件地址格式校验器(email)网址格式校验器(url)转换校验器(conversion)表达式校验器(expression)字段表达式校验器(fieldexpression)正则表达式校验器(regex)13. 自定义校验器必须实现哪个接口?注册校验器的配置文件应如何命名?答:实现com
7、.opensymphony.xwork2.validator.Validator;接口;配置文件必须以validate.xml命名;14. 按照自己的理解,谈谈自定义类型转换器的方法。答:1 继承DefaultTypeConverter类; 2 注册局部类型转换器方法 在Action所在的目录下,创建ActionClassName-conversion.properties文件,文件内容格式syntax:=; 3注册全局类型转换器方法在classpath的根下创建xwork-conversion.properties文件,文件内容语法:syntax:=15Struts2中动态调用的格式( CD
8、 )A) ActionName?methodName.do。B) ActionName!methodName.do。C) ActionName?methodName.action。D) ActionName!methodName.action。16什么是国际化?国际化资源文件的命名格式是?答:国际化是(i18n)指的是软件设计阶段,就应该使软件具有支持多种语言和地区的功能、这样,当需要在应用中添加对一种新语言和国家的支持是不需要对已有的软件返工,不需要修改的代码;java资源文件的命名可以有3种格式:basename_language_country.propertiesbasename_la
9、nguage.propertiesbasename_properties17.在页面中使用( )输出国际化信息;在Action类中如何输出国际化信息?表单标签中又当如何?答:在action类中,可以继承actionSupport,使用getText()方法得到国际化信息;在表单标签中,通过key属性指定资源文件的key18.加载国际化资源文件有哪四种方式?答:加载全局范围资源文件,加载包范围资源文件,加载action范围资源文件,加载临时指定范围内的资源文件;19.按照你的理解,谈谈如何实现自由选择语言环境?答:Struts2提供一个名字为i18n的拦截器,并已把该拦截器添加到默认拦截器中。i
10、18n拦截器自动查找客户端请求中名字为request_locale的参数,并根据该参数实例化一个Locale对象。Struts2会把Locale保存在Session中的一个名字为WW_TRANS_I18N_LOCALE的属性中,该属性值将会作为浏览器默认的Locale.20.请画出OGNL上下文的结构示意图。解释如何访问OGNL上下文的对象?常常需要配合哪个Struts标签使用?答:添加值栈,将值存放到值栈里面,在页面访问方式#配合21.Struts 2默认响应请求的后缀名是.action,若要配置Struts 2只处理以.do为后缀名的请求,有哪些方法?若要处理多个后缀又当如何?答:1.可以
11、修改struts.xml和struts.properties来修改默认的配置,在struts.xml中添加子接点或者是修改struts.properties文件添加struts.action.extension=do这都是一样的效果注意:struts.xml和struts.properties的都放在src下发布的时候会自动拷贝到WEB-INF/classes下2.在web.xml里面的filter中加入值为do;3处理多个后缀,在步骤1里面用逗号隔开添加即可;22.实现在Action中访问Servlet API有哪几种方法?答:直接访问方式,间接访问方式,ioc和非ioc方式;23.Stru
12、ts 2文件上传需要用到那两个包?根据你的理解,谈谈实现文件上传的步骤。答:Comons-fileupload-1.2.1.jar和commons-io-1.2.1.jar第一步:在web-inf/lib下面添加必须的jar文件第二步:把form表单的enctype设置为“multipart/form-data”;第三步:在action类中;添加必要属性:privateFileupload;/得到上传文件的类型privateStringuploadFIletype;/文件类型privateStringuploadFileName;/文件名称24.在strutrs2中数据验证失败时,通过( D
13、)标签显示错误信息。E) F) G) H) 25.以下配置文件上传拦截器只允许bmp图片文件代码,正确的是(D )。I) *.bmp J) bmp K) image/*.bmp L) image/bmp 26.如下代码,对DemoAction起作用的拦截器有( B )。 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(uid,url); % Y) 生成超链接Z) 生成超链接。AA) 找不到对象。BB) 什么都不输。30.简述如何用拦截器解决表单重复提交问题?答:第一步:在表单中加入第二步:在struts.xml中添加如下配置token拦截器/tokenTag.jsp-
限制150内