Java寒假笔试模拟题三姓名:________学号:___________一、单项选择题:1.Struts是一个开源的Web开发框架,它是由哪个组织进行维护的?( c )。
A.BEAB.JBossC.ApacheD.Sybase2.如果在Web应用程序中添加struts2框架的支持,需要在配置哪个类作为struts2的核心控制器( a )。
A.FilterDispatcherB.StrutsServletC.ApplicationContextListenerD.SessionFactory3.Struts2的核心控制器需要在哪个配置文件中进行配置( b )A.struts.xmlB.web.xmlC.applicationContext.xmlD.webwork.xml4.关于开发人员自己创建的Action,以下说法正确的是( c )A.Struts2中的Action必须继承Action类B.Struts2中的Action必须实现Action接口C.Struts2中的Action无需实现或者继承任何类或接口D.Struts2中的Action必须继承ActionSupport类解释:Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,还实现了Validateable 接口,提供了数据校验功能。
通过继承该ActionSupport类,可以简化Struts 2的Action开发。
5.以下关于Struts2配置文件中package元素说法错误的是( d ).A.package元素的name属性不可以重复B.package元素可以进行继承C.package元素可以声明为抽象(abstract=”true”)D.package元素可以嵌套6.以下关于Struts2配置文件中action元素说法错误的是( a ).A.任何一个action的name属性都不可以相同B.action元素可以没有class属性C.action元素中拥有method属性D.action元素的子元素可以配置interceptor-ref7.Struts2进行数据收集和类型转换的工作,是由以下哪个负责完成的( a )。
A.FilterDispatcherB.ActionInvocationC.defaultStack中配置的InterceptorD.ServletActionContext8.Struts2中的Action默认是否是线程安全的( a )。
A.是线程安全的B.不是线程安全的9.以下关于Struts2访问url的说法,正确的是( c )。
A.Struts2的Action访问url后缀必须是.actionB.Struts2的Action访问url后缀必须是.action或者.doC.Struts2的Action访问url可以随意设置其后缀D.Struts2的Action后缀在web.xml中进行配置10.Struts2中result的type属性为( c )时,表示url进行重定向。
A.dispatcher B.plain C.redirect D.forward解释:chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息.dispatcher:用来转向页面,通常处理JSP.特指服务器端跳转freemaker:处理FreeMarker模板.httpheader:控制特殊HTTP行为的结果类型.redirect:重定向到一个URL,被跳转的页面中丢失传递的信息,如request.特指客户端跳转redirectAction:重定向到一个Action,跳转的页面中丢失传递的信息.stream:向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据.velocity:处理Velocity模板.xslt:处理XML/XLST模板.plainText:显示原始文件内容,例如文件源代码.重点说一下redirect和redirectAction的区别:(1)使用redirect需要后缀名,使用redirect-action可以不需要后缀名.(2)type="redirect"的值可以转到其它命名空间下的action,而redirect-action只能转到同一命名空下的action,因此它可以省略.do的后缀直接写action的名称.11.Struts2中result的type属性为( a )时,表示进行Servlet API中forward内部跳转。
A.dispatcher B.plain C.redirect D.forward12.下面关于struts2标签库说法正确的是( b )。
A.Struts2的标签库使用的是jstl标签库B.直接访问的Jsp中使用Struts2的标签库,FilterDispatcher应该也对JSP进行拦截C.Struts2的标签中只支持el表达式D.Struts2的标签库中没有关于ui的标签13.在struts2的action中,以下哪种方式无法访问到HttpServletRequest( d )。
A.通过ServletActionContext获得HttpServletRequestB.通过实现ServletRequestAware接口C.通过ActionContext获得HttpServletRequestD.通过RequestFactory获得HttpServletRequest 14.关于Struts2的ActionSupport辅助类,以下哪个功能是它所不提供的( c )。
A.对数据进行校验B.输出信息提供国际化支持C.自定义类型转换D.定义了部分返回结果字符串的常量15.以下关于Struts2的Action中处理请求的方法,说法正确的是( a )。
A.返回类型必须是字符串类型B.方法名必须是execute方法C.方法必须有一个传入参数D.方法不能throws任何异常二、填空题(具体要求。
本大题共8道小题,每空2分,共30分)1.Struts2的配置文件默认的文件名是(struts.xml ),可以在通过( include )标签将其他Struts2配置文件导入进来。
2.Struts2配置文件中,关于Action配置的标签名是(action ),其中指定访问路径的属性是( name ),指定处理类的属性是( class )。
3.Action默认执行的方法名称是( execute ),如果希望指定自定义方法,则在action的配置信息中加入( method )属性。
4.Struts2配置文件中表示包的标签是( package ),设定包内action的访问命名空间的属性是( namespace )。
5.Struts2中使用了( ognl )表达式语言,负责对对象数据访问进行支持,该表达式语言中文字面翻译为“对象图导航语言”。
如果Action中存在可访问的变量User,变量名为user,在表现层通过该表达式语言访问user的id属性,则该表达式写为( user.id )。
6.Struts2的标签库为表现层控制数据显示提供了很多的帮助,其中负责输出信息的标签是( property ),负责进行遍历的标签是( Iterator )。
(直接书写标签名即可,无需加入"<s:"等前缀)7.使用Struts2开发过程中,需要编写一个自定义拦截器,则需要实现( Interceptor )接口(只写类名即可)。
8.Struts2配置文件中,表示返回结果的是result标签。
其中type 属性表示其返回结果的类型。
如果希望内部跳转至另一个Action,则type的值为( chain )。
三、简答题(具体要求。
本大题共4道小题,共25分)1.请编写一个Action类和一段配置信息,负责处理登录操作的请求。
提交表单中登录名name属性为username,密码为password。
要求:使用struts2提供的数据接收功能自动接收数据,判断用户名密码是否均为briup,成功则跳转至/WEB-INF/pages/success.jsp页面并将用户名放入到HttpSession中,键名为"user"。
如果验证失败则跳转至/WEB-INF/pages/error.jsp。
(action配置信息,只写action和result部分即可)(10分)2.为了保护不允许直接访问的jsp资源,开发者将所有jsp页面放入到/WEB-INF/pages目录下。
如今有一个需求,希望通过struts2通配符的方式可以直接访问/WEB-INF/pages/admin/目录下的jsp资源。
例如:访问static_index.action 时,相当于访问/WEB-INF/pages/admin/index.jsp。
访问 static_top.action时,相当于访问/WEB-INF/pages/admin/top.jsp。
请使用struts2配置文件中,action通配符的技巧完成改攻能。
(只写action result配置即可) (5分)3.Struts2框架是一个MVC思想的实现,请用自己的语言简述一下MVC 思想。
(5分)4.请用自己的语言简单描述一下,使用了struts2后,当系统接收到一个客户端请求时的处理流程。