


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目1以下不届丁Struts2中result的type届性()A.actionredirectC.redirectActionD.dispatcher题目2下列有关拦截器说法错误的是?A.struts通过拦截器完成执行action请求处理方法前一系歹U操作。例如:数据封装、文件上传、数据校验等'B.在struts中,直接访问jsp页面,struts将使用默认拦截器栈处理当前请求。厂C.在执行action时,struts将执行若干拦截器1、2、3,执行action完成后,将继续执行拦截器3、2、1'D.默认情况,在一个action没有配置拦截器的引用,说明当前action将不使用
2、拦截器题目3以下哪些是Action接口提供的返回值?WAsuccess,DA. noneerror财D.input题目4如果要实现struts2的数据检验功能广A普通的Action类可以实现厂B继承自Action接口的可以实现面C继承自ActionSupport类可以实现厂D继承自ActionValidate类可以实现题目5struts2默认的处理结果类型是:A.dispatcher'B.redirectC.chainB. forward题目6在值栈的上下文Context中,存在一些固定的key表示不同的对象,以下描述正确的是?request,表示request作用域的数据'B
3、.session,表示session作用域的数据阿C.application,表示application作用域的数据*D.parameters,表示请求参数的所有数据题目7以下届丁struts2配置文件中的配置元素是:()多选)A. <package><action>厂C.<form-beans>厂D.<action-mappings>题目8有关值栈contextMap栈数据操作描述正确的是?WA.ActionContext.getContext().put(key,value)直接对context进行操作WB.使用<s:propertyv
4、alue="#key”/>获得context中指定key的内容财C.ActionContext.getContext().getSession().put(key,value);将数据放置context固定key为session对应的map中巧D.ActionContext.getContext().getApplication().put(key,value);将数据放置context固定key为application对应的map中题目9有关<s:iterator/>描述正确的是?财A.value届性的值对应值栈中的相关的数据'B.默认情况,将遍历的每一个
5、数据都临时压入到root的栈顶,遍历结束时再将数据移除阿C.如果使用var届性,在值栈的context中存放一个键值对阿D.如果使用status届性,可以获得当前遍历的状态。例如:遍历的索引,是否为奇偶等题目10token令牌机制,下面说法正确的是?'A.如果要使token可用,必须在jsp表单中提供<s:token/>,struts.xml使用token拦截器厂B.在struts2默认的拦截器栈中包含token拦截器回C.s:token标签的作用在jsp页面生成一个隐藏域数据'D.token拦截器可以通过includeMethods届性设置需要进行拦截的方法题目1
6、1卜歹0有关ValueStack内部结构描述正确的是?WA.ValueStack内部有两个逻辑部分:root和contextWB.ValueStack的上下文context中存放了request、session、application的引用C.ValueStack的root部分,可以用丁存放对象。在jsp页面中通过struts标签,可以使用对象的届性,直接获得需要的数据。阡D.ValueStack的context部分,struts将使用key=value的形式存放数据,在jsp页面中通过struts标签,可以使用”#key”方式获指定的数据题目12在struts2配置中用()元素配置常量A.
7、<action>B. <package>C. <constant>D. <include>题目13下歹0有关访问struts2的action,说法错误的是?厂A.action的访问路径,需要使用package标签的namespaceH性的值和action标签的nameM性的值”,并在页面中成功显示,如果访问路径是”/primer/helloWorldActionpackage标签的namespace届性值可以是”/primer”C.在配置action时,其中class届性是用来请求访问的Action类。面D.在struts.xml文件中必须配置拦
8、截器题目14在Struts2中,可以在哪些配置文件中配置常量()多选JA.struts.xml'B.perties财C.web.xml厂D.server.xml题目15下面有关struts2配置文件说法正确的是?巧A.perties文件,struts2提供的默认常量配置文件'B.struts-default.xml文件,struts2提供默认功能实现配置文件。此文件中提供大量的拦截器,结果集类型等'C.struts.xml文件,是struts2预留给框架使用者,编写自定义配置信息的D.struts-default.xml,str
9、uts-plugin.xml和struts.xml文件加载是没有顺序的题目16在action元素中,那个届性可以指定Action中要执行的方法的名称()"A.methodcB. nameC. classD. methodName题目17以下配置文件,哪些是struts2的?JA.pertiesB.action.xml厂C.struts2.xmlWD.struts.xml题目18有关值栈root对象栈数据操作描述正确的是?'A.valueStack.push(obj)将指定的对象压入到栈顶B.在jsp页面,可以使用<s:property/>获得
10、栈顶的数据厂C.valueStack.getRoot()不能获取对象栈name'D.在jsp页面,可以使用<s:propertyvalue="name”/>获得对象栈中届性的值题目19下列哪个校验器可以校验“两次密码输入不一致”()A. requiredB. requiredstringstringlength"D.fieldexpression关丁struts2哪些api是正确的? ServletActionContext.getRequest()可以获得HttpServletRequest'B.ServletActionContext.get
11、Response()可以获得HttpServletResponse'C.ServletActionContext.getServletContext()可以获得ServletContextD.ServletActionContext.getRequest().getSession()可以获得HttpSession题目21struts2action类的编写,下歹U说法正确的是?A.action类可以不继承任何类,不实现任何接口'B.action类可以实现struts提供的接口Action'C.action类可以继承ActionSupport'D.action类中请
12、求处理方法,必须是共有的,方法名称自定义,且没有参数题目22struts2动态方法调用的格式为: ActionName?methodName.actionB.ActionName!methodName.actionActionName*methodName.action厂D.题目23下列哪个结果类型用来转发到Action()单选pA.dispatcherA. chainB. redirectActionC. stream题目24.在Action接口中提供的5个逻辑视图代表表单输入错误会跳转的视图名称是()A. SUCCESSB. ERRORC. INPUTD. LOGIN题目25卜列有关,表单
13、回显正确的是?'A.只要将数据放置到request作用域,struts表单标签可以根据nameH性进行回显B.只要将数据放置到session作用域,struts表单标签可以根据nameH性进行回显'C.只要将数据放置到application作用域,struts表单标签可以根据name届性进行回显倍D.只要将数据放置到对象栈root中,struts表单标签可以根据nameM性进行回显题目26struts2在控制器类中一般需要添加相应届性的A.setter方法厂B.as方法回C.getter方法厂D.is方法题目27当类型转换失败时,Struts会自动跳转到()结果单选A.erro
14、rB.successB. login31D.input题目28卜列哪个常量用来配置Action的扩展名()单选A.struts.i18n.encoding1B.struts.action.extensionB. struts.serve.static.browserCacheC. struts.devMode题目29请看代码form.jsp<s:formaction=”myAction”namespace=”/”theme=”simple”>用户名:<s:textfieldname=”username”/><br/>密码:<s:passwordname
15、=”password”/><br/><s:submitvalue=”提交”/></s:form>struts.xml<packagename='xxx”namespace=”/”extends=”struts-default”><actionname="myAction"class="cn.itcast.web.action.MyAction"/></package>User.javapublicclassUser(privateStringusername;priva
16、teStringpassword;publicvoidsetUsername(Stringusername)(this.username=username;publicvoidsetPassword(Stringpassword)(this.password=password;MyAction.javapackagecn.itcast.web.action;publicclassMyActionextendsActionSupportimplementsModelDriven<User>privateUseruser=newUser();privateStringusername;
17、privateStringpassword;publicvoidsetUsername(Stringusername)this.username=username;publicvoidsetPassword(Stringpassword)this.password=password;publicUsergetModel()returnthis.user;publicStringexecute()System.out.println(username+","+password);returnnull;当在form.jsp表单中,向用户名中输入zhangSan,向密码中输入12
18、3后提交,控制台会有什么样的输出结果()单选A.null,nullB.zhangSan,123C. 抛出异常题目30下歹0对stringlength校验器描述正确的是()面A.可以配置minLength和maxLength参数厂B.可以配置min和max参数厂C.没有参数D.可以配置minLength和maxLength,以及min和max参数题目31下列有关值栈描述错误的是?'A.valueStack是单例的,用丁存放struts需要存放的数据厂B.值栈被保存在HttpServletRequest作用域中C.可以通过ActionContext.getValueStack()获得值栈D
19、.可以通过ActionContext.getContext().getValueStack()获得值栈题目32下歹0对局部xml配置校验说法正确的是()多选A.配置文件必须放到当前Action同包下卬B.配置文件名称必须是“当前Action类名-当前action的name名称-validation.xml”卬C.在Action类中无需编写任何与参数校验相关的代码可以使用InputConfig注解来自定义校验失败后跳转的结果以下有关struts.xml文件描述正确的是?面A.struts.xml文件必须放置在src下面厂B.struts.xml文件中只能配置一个packageC.struts.x
20、ml文件可以放置在WEB-INF7!录下D.struts.xml文件名称可以自定义,只要以struts开头就可以题目34以下结果类型描述正确的是?回A.redirect,将请求重定向到另一个资源,一般重定向到jsp页面。B.redirectAction,将请求重定向到另一个action'C.dispatcher,struts框架默认结果类型,将请求转发到另一个资源阿D.stream确定result将从action获得流并发送到浏览器。题目35(了解)下列对全局类型转换器配置描述正确的是()多选A.再己置文件名称必须为perties'B.配
21、置文件必须放到/WEB-INF/classes目录下'C.配置信息中届性名为目标类型名称阿D.配置信息中届性值为目标类型的类型转换器类名题目36(了解)下列有关自定义类型转换器说法正确的是?'A.编写自定义转换器实现类,需要实现TypeConverter接口或继承默认实现类DefaultTypeConverterB.转换器的转换方法,将有可能执行两次。一次是表单提交数据字符申数组,转换成指定对象;一次是标签回显指定对象,转换成字符申。'C.自定义转换可以被配置成全局转换,使用的固定的名称:perties,此转换器将覆盖struts
22、默认实现的转换(如果有)巧D.自定义转换可以被配置成局部转换器,此类转换器只对当前action有效。进行注册时,需要使用一定格式的文件名称:action类名-perties题目37OGN宸达式中符合的使用,下面说话错误的是?厂A.”#key”表示可以获得值栈context中的指定key的数据厂B.”$ognl”表示在配置文件中执行ognl表达式席C.”'#request.username'”,输出的内容是从request域中读取username的值厂D.”'#request.username'”,输出的内容是”#request.use
23、rname”这个字符申题目38下面有关modelDriven机制,分析正确的是?阿A.必须实现接口ModelDriven,通过在实现接口时,提供javabean类型作为泛型参数。WB.需要实现接口的方法getModel()厂C.编写一个成员变量,可以不实例化'D.在struts的默认拦截器栈中,已经使用了modelDriven拦截器,此拦截器将当前action提供的javabean对象压入到栈顶,在通过其他拦截器从而完成整个数据的封装。下面代码执行结果?在action中进行如下操作:ActionContext().getContext().put(“itcast”,”传智播客”);#i
24、tcast”>#itcast">#request.itcast”>#重定向到jsp页面后,在jsp页面使用标签<s:propertyvalue=<s:propertyvalue=<s:propertyvalue=厂A.传智播客#厂B.传智播客#传智播客#厂C.传智播客#传智播客#传智播客#面D.#题目40.下歹0有关struts2说法正确的是?厂A.struts2依赖丁Servletapi,所有我们必须使用ServletActionContext工具类提供的方法操作servlet的作用域*B.struts2的action是多实例的厂C.在strut
25、s2中的action是需要依赖servlet容器的阿D.在struts2中可以利用ognl表达式展现数据strutstoken令牌机制利用Struts同步令牌(Token)机制来解决Web应用中的重复提交问题。该方法的基本原理是:服务器端在处理到达的request之前,会将request中的Token值与保存在当前用户session中的令牌值进行比较,看是否匹配。在处理完该request后,且在response发送给客户端之前,将会产生一个新的Token,该Token除传给客户端以外,也会将用户session中保存的旧的Token进行替换。这样,如果用户会退到刚才的提交页面并再次提交的话,客户
26、端传过来的Token值和服务器端的不一致,从而有效地防止了重复提交地发生。struts的Token机制实际上就是通过用户提交表单时,比较request中的请求参数“org.apache.struts.taglib.html.TOKEN的值与当前会话中的属"org.apache.struts.action.TOKEN"的值是否相等,相等则是正常提交,不等则为重复提交。下面我们看下一个完整的操作流程,这样便于理解:首先我们要明白,重复提交是发生在什么情况下的,什么情况下需要处理重复提交。我们所要解决的重复提交一般是考虑用户新插入一条记录的情形,对于修改记录的重复提交一般不考虑,
27、因为修改记录本身记录就存在ID,重复提交也只不过是重复更新数据库同一记录而已,对数据的正确性不会有影响。如果新插入一条记录不对重复提交进行处理的话,那么就会在数据库中重复插入同一记录,这样会在数据库产生冗余的重复记录。当我们要插入一条记录时,会分二步走。第一步我们要打开新增记录的页面。第二步,我们会在打开的页面中填写相关信息,然后提交,这个时候提交才算完成。第一步:假如我们打开新增记录这个操作由add方法完成,代码如下:publicActionForwardadd(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,Htt
28、pServletResponseresponse)this.saveToken(request);/这个方法就是产生令牌值,struts已有的方法returnmapping.findForward("add");/返回新增页面通过调用saveToken(request),产生一个token值。(注:每次调用saveToken方法产生的token值都不同)然后在记录新增页面中的<html:form>内部增加一个隐含表单字段,形式如下:<div><inputtype="hidden"name="org.apache.s
29、truts.taglib.html.TOKEN”value="8b2d950f23b02c527988quot;></div>然后再把token值"8b2d950f23b02c527988quot;保存到当前会话中,也就是session.setAttribute("org.apache.struts.action.TOKEN","8b2d950f23b02c527988quot;);第二步:假如我们提交这个页面数据由save方法完成,代码如下:pub
30、licActionForwardsave(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)if(this.isTokenValid(request)/正常提交this.resetToken(request);/清空当前会话中的token值returnmapping.findForward("success");/返回保存成功页面else/重复提交this.saveToken(request);/注:此方法在这里可要也可不要。returnmapp
31、ing.findForward("fail");/返回重复提交提示信息页面1. 判断是不是重复提交关键是isTokenValid(request)这个方法,这个方法由struts提供,如果返回结果为true则表示正常提交,false则为重复提交。isTokenValid(request)这个方法实际上主要做了三件事,判断当前会话是否过期,如果过期,直接返回falseHttpSessionsession=request.getSession(false);if(session=null)returnfalse;然后再判断当前会话中是否存在令牌属性"org.apach
32、e.struts.action.TOKEN",如果不存在,返回falseStringsaved=(String)session.getAttribute("org.apache.struts.action.TOKEN");if(saved=null)returnfalse;为什么令牌属性"org.apache.struts.action.TOKEN"会不存在呢,那是因为当用户正常提交后,会调用this.resetToken(request);/清空当前会话中的token值。也就是说resetToken(request)方法中调用了session
33、.removeAttribute("org.apache.struts.action.TOKEN");当用户重复提交时,我说了"this.saveToken(request);/此方法在这里可要也可不要。”,下面我们分析下,如果不调用这个方法,会话中就不会再重新保存token值,那么再刷新的时候,session中的token值总是为null,isTokenValid(request)直接返回false,如果调用this.saveToken(request)的话,session中会重新添加token属性值。这个时候isTokenValid(request)会进行下面
34、第三步的判断。从当前会话中取得token的值与当前request中得到的token值比较,相同返回true,不同返回falseStringtoken=request.getParameter("org.apache.struts.taglib.html.TOKEN");if(token=null)returnfalse;returnsaved.equals(token);如果是重复刷新,那么每次request中的令牌值都是一样的,但每次刷新当前会话中的令牌值都被重新替换了,所以会返回false注:使用struts的表单提交Token机制时,提交的表单一定要写成<htm
35、l:form></html:form>这种形式,如果写成<form></form>这种形式的话,尽管调用saveToken(request)方法也不会在当前的<form></form>里面生成隐含表单,最终的结果都是”重复提交”.动态方法调用在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多第一种方式:指定method届性这种方式我们前面已经用到过,类似下面的配置就可以实现<actionname=”chainAction”class=”chapter2
36、.action.Chapter2Action”method=”chainAction”><resultname=”chainAction”type=”chain”>redirect</result></action><actionname=”plainText”class=”chapter2.action.Chapter2Action”method=”plainText”><resultname=”plainText”type=”plainText”>/WEB-INF/JspPage/chapter2/plaintext.jsp
37、</result></action>第二种方式:感叹号方式(需要开启),官网不推荐使用这种方式,建议大家不要使用.用这种方式需要先开启一个开关<constantname="struts.enable.DynamicMethodInvocation"value="true"/>将此常量设置为true,这种方式才能使用,使用见示例Actionpackagechapter3.action;publicclassChapter3Action(publicStringresult1()(return"resultl&q
38、uot;publicStringresult2()(return"result2"Jsp中访问方式<body><ahref="basePath/chapter3/chapter3Action!result1">result1</a><br><ahref="basePath/chapter3/chapter3Action!result2">result2</a><br></body>如果配置了后缀,必须这样写:/chapter4/chapte
39、r4Action!create.actionXML中配置方式<packagename="chapter3"namespace="/chapter3"extends="struts-default"><actionname="chapter3Action"class="chapter3.action.Chapter3Action"><resultname="resultT'>/WEB-INF/JspPage/chapter3/result1.jsp</result><resultname="result2">/WEB-INF/J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2293-2025在线钠离子计校准规范
- 2025年自行车 环评报告
- 天津市人民医院放疗物理师资格认证
- 大同市中医院护理科研国际交流考核
- 唐山市人民医院血液透析医师上岗资格认证
- 邯郸市中医院人才梯队建设与继任者计划试题
- 上海市中医院复发预防指导考核
- 张家口市人民医院皮秒激光技术专项考核
- 通辽市人民医院神经介入与开放手术协作考核
- 忻州市中医院图像判读技能考核
- 生产与运作管理案例大全
- 外科学-颈部疾病课件
- 【优选】茶叶中的化学成分PPT文档
- LY/T 1955-2011林地保护利用规划林地落界技术规程
- GB/T 5272-2017梅花形弹性联轴器
- 一年级《劳动实践指导手册》《学习用品我整理》教案
- 高速铁路隧道衬砌拆换支架施工方案
- 班组‘五大员’管理办法
- 急性中毒急危重症护理学
- 龟虽寿-完整版课件
- 2018山东省东营市中考地理真题及答案
评论
0/150
提交评论