教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

struts2面试题(自己总结)(3)

来源:网络收集 时间:2026-07-23
导读: 方案二: 类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware 注意:框架自动传入对应的域对象 struts2是如何管理action的?这种管理方式有什么好处? struts2框架中使用

方案二:

类 implements ServletRequestAware,ServletResponseAware,SessionAware,ServletContextAware

注意:框架自动传入对应的域对象

struts2是如何管理action的?这种管理方式有什么好处?

struts2框架中使用包来管理Action,包的作用和java中的类包是非常类似的。

主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。

struts2中的默认包struts-default有什么作用?

1)struts-default包是由struts内置的,它定义了struts2内部的众多拦截器和Result类型,而Struts2很多核心的功能都是通过这些内置的拦截器实现,如:从请求中

把请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现的。当包继承了struts-default包才能使用struts2为我们提供的这些功能。 2)struts-default包是在struts-default.xml中定义,struts-default.xml也是Struts2默认配置文件。 Struts2每次都会自动加载 struts-default.xml文件。

3)通常每个包都应该继承struts-default包。

struts2如何对指定的方法进行验证?

1)validate()方法会校验action中所有与execute方法签名相同的方法; 2)要校验指定的方法通过重写validateXxx()方法实现, validateXxx()只会校验action中方法名为Xxx的方法。其中Xxx的第一个字母要大写; 3)当某个数据校验失败时,调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承

ActionSupport), 如果系统 的fieldErrors包含失败信息,struts2会将请求转发到名为input的result;

4)在input视图中可以通过显示失败信息。 5)先执行validateXxxx()->validate()->如果出错了,会转发

struts2默认能解决get和post提交方式的乱码问题吗?

不能。struts.i18n.encoding=UTF-8属性值只能解析POST提交下的乱码问题。

请你写出struts2中至少5个的默认拦截器?

fileUpload 提供文件上传功能

i18n 记录用户选择的locale

cookies 使用配置的name,value来是指cookies checkbox 添加了checkbox自动处理代码,将没有选中的checkbox的内容设定为false,而html默认情况下不提交没有选中的checkbox。

chain 让前一个Action的属性可以被后一个Action访问,现在和chain类型的result()结合使用。

alias 在不同请求之间将请求参数在不同名字件转换,请求内容不变

值栈ValueStack的原理与生命周期?

1)ValueStack贯穿整个 Action 的生命周期,保存在request域中,所以ValueStack和request的生命周期一样。当Struts2接受一个请求时,会迅速创建ActionContext,

ValueStack,action。然后把action存放进ValueStack,所以action的实例变量可以被OGNL访问。 请求来的时候,action、ValueStack的生命开始,请求结束,action、 ValueStack的生命结束;

2)action是多例的,和Servlet不一样,Servelt是单例的;

3)每个action的都有一个对应的值栈,值栈存放的数据类型是该action的实例,以及该action中的实例变量,Action对象默认保存在栈顶; 4)ValueStack本质上就是一个ArrayList;

5)关于ContextMap,Struts 会把下面这些映射压入 ContextMap 中: parameters : 该 Map 中包含当前请求的请求参数

request : 该 Map 中包含当前 request 对象中的所有属性 session :该 Map 中包含当前 session 对象中的所有属性

application :该 Map 中包含当前 application 对象中的所有属性 attr:该 Map 按如下顺序来检索某个属

性: request, session, application

6)使用OGNL访问值栈的内容时,不需要#号,而访问request、session、application、attr时,需要加#号;

7)注意: Struts2中,OGNL表达式需要配合Struts标签才可以使用。如:

8)在struts2配置文件中引用ognl表达式 ,引用值栈的值 ,此时使用的\,而不是#或者%;

ActionContext、ServletContext、pageContext的区别?

1)ActionContext是当前的Action的上下文环境,通过ActionContext可以获取到request、session、ServletContext等与Action有关的对象的引用; 2)ServletContext是域对象,一个web应用中只有一个ServletContext,生命周期伴随整个web应用;

3)pageContext是JSP中的最重要的一个内置对象,可以通过pageContext获取其他域对象的应用,同时它是一个域对象,作用范围只针对当前页面,当前页面结束时,pageContext销毁,

生命周期是JSP四个域对象中最小的。

result的type属性中有哪几种结果类型?

一共10种:

dispatcher

struts默认的结果类型,把控制权转发给应用程序里的某个资源不能把控制权转发给一个外部资源,若需要把控制权重定向到一个外部资源, 应该使用 redirect结果类型

redirect 把响应重定向到另一个资源(包括一个外部资源)

redirectAction 把响应重定向到另一个 Action

freemarker、velocity、chain、httpheader、xslt、plainText、stream

拦截器的生命周期与工作过程?

1)每个拦截器都是实现了Interceptor接口的 Java 类;

2)init(): 该方法将在拦截器被创建后立即被调用, 它在拦截器的生命周期内只被调用一次. 可以在该方法中对相关资源进行必要的初始化;

3)intercept(ActionInvocation invocation): 每拦截一个动作请求, 该方法就会被调用一次; 4)destroy: 该方法将在拦截器被销毁之前被调用, 它在拦截器的生命周期内也只被调用一次;

5)struts2中有内置了18个拦截器。

struts2如何完成文件的上传?

1、JSP页面:

1)JSP页面的上传文件的组件:,如果需要一次上传多个文件, 就必须使用多个 file 标签, 但它们的名字必须是相同的,即:

name=“xxx”的值必须一样;

2)必须把表单的enctype属性设置为:multipart/form-data; 3)表单的方法必须为post,因为post提交的数据在消息体中,而无大小限制。 2、对应的action:

1)在 Action 中新添加 3 个和文件上传相关的属性;

2)如果是上传单个文件, uploadImage属性的类型就是 java.io.File, 它代表被上传的文件, 第二个和第三个属性的类型是 String, 它们分别代表上传文 件的文件名和文件类型,定义方式是分别是:

jsp页面file组件的名称+ContentType, jsp页面file组件的名称+FileName

3)如果上上传多个文件, 可以使用数组或 List

…… 此处隐藏:1811字,全部文档内容请下载后查看。喜欢就下载吧 ……
struts2面试题(自己总结)(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/598070.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)