《STRUTS常见面试题_java常见面试题3139.pdf》由会员分享,可在线阅读,更多相关《STRUTS常见面试题_java常见面试题3139.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、STRUTS 常见面试题_java 常见面试题 struts 常见面试题篇 1 1.简述 struts 框架的初始化流程。答案:对于使用 struts 框架的 web 应用领域,在 web 应用领域启动时就可以读取并初始化控制器 actionservlet actionservlet 从 struts-config.xml 文件中读取配置信息,把它们存放到actionmappings 对象中。在 strutsframework 中,controller 主要就是 actionservlet,但是对于业务逻辑的操作方式则主要由 action、actionmapping、actionforward
2、 这几个组件协同顺利完成(也许这几个组件,必须分割至模型中的业务逻辑一块)。其中,action 扮演了真正的控制逻辑的实现者,而 actionmapping 和 actionforward则指定了不同业务逻辑或流程的运行方向。2.详述 struts 框架积极响应客户命令的工作流程 1.检索和用户请求匹配的 actionmapping 实例,如果不存在,就返回用户请求路径无效的信息。2.如果 actionform 实例不存有,就建立一个 actionform 对象,把客户递交的表单数据留存至 actionform 对象中。3.根据配置信息决定是否需要表单验证。如果需要验证,就调用 actionf
3、orm 的validate()方法。4.如果 actionform 的 validate()方法回到 null 或回到一个不涵盖 actionmessge 的actionerrors 对象,就则表示表单检验顺利。5.actionservlet 根据 ationmapping 实例包含的映射信息决定将请求转发给哪个action。如果应的 action 实例不存在,就先创建这个实例,然后调用 action 的 execute()方法。6.action 的 execute()方法回到一个 actionforward 对象,actionservlet 再把客户命令发送到 actionforward 对
4、象指向的 jsp 组件。7.actionforward 对象指向的 jsp 组件生成动态页面,返回给客户。对于以上流程的步骤(4),如果 actionform 的 validate()方法回到一个涵盖一个或多个 actionerror 的 actionerrors 对象,就则表示表单检验失利,此时 actionservlet 将轻易把命令发送到涵盖客户递交表单的 jsp 组件。在这种情况下,不能再建立 action 对象并调用 action 的 execute 方法。3struts 框架的数据验证可分为几种类型?表单检验(由 actionformbean 处置):如果用户没在表单中输出姓名,就
5、递交表单,将分解成表单检验错误 业务逻辑验证(由 action 处理):如果用户在表单中输入的姓名为“monster”,按照本应用的业务规则,不允许向“monster”打招呼,因此将生成业务逻辑错误。4 详述 formbean 的表单检验流程。1、当用户提交了 html 表单,struts 框架自动把表单数据组装到 actionformbean 中。2、接下来 struts 框架可以调用 actionformbean 的 validate()方法展开表单检验。3、如果 validate()方法返回的 actionerrors 对象为 null,或者不包含任何actionmessage 对象,就
6、表示没有错误,数据验证通过。4、如果 actionerrors 中涵盖 actionmessage 对象,就则表示出现了检验错误,struts 框架可以把 actionerrors 对象留存至 request 范围内,然后把命令留言至恰当的视图组件,视图组件通过标签把 request 范围内的 actionerrors 对象中涵盖的错误消息表明出,提示信息用户修正错误。5 在 struts 配置文件中 action 元素包含哪些属性和子元素?path 属性:选定命令出访 action 的路径 type 属性:指定 action 的完整类名 name 属性:选定须要传达给 action 的 ac
7、tionformbean scope 属性:指定 actionformbean 的存放范围 validate 属性:选定与否继续执行表单检验 input 属性:指定当表单验证失败时的转发路径。元素还涵盖一个子元素,它定义了一个命令留言路径。6.简单叙述 actionformbean 的作用 1、actionformbean 也就是一种 javabean,除了具备一些 javabean 的常规方法,还涵盖一些特定的方法,用作检验 html 表单数据以及将其属性再次设置为默认值。2、struts 框架利用 actionformbean 来进行 view 组件和 controller 组件之间表单数
8、据的传递。3、struts 框架把 view 组件拒绝接受至的用户输出的表单数据留存在actionformbean 中,把它传达给 controller 组件,controller 组件可以对actionformbean 中的数据展开修正 jsp 文件采用 struts 标签加载修正后的actionformbean 的信息,再次设置 html 表单。7.叙述 actionform 执行步骤 (1)检查 action 的态射,确认 action 中已经布局了对 actionform 的态射 (2)根据 name 属性,查找 formbean 的配置信息 (3)检查 action 的 formbe
9、an 的采用范围,确认在此范围下,与否已经有此 formbean的实例。(4)假如当前范围下,已经存在了此 formbean 的实例,而是对当前请求来说,是同一种类型的话,那么就重用。(5)否则,就再次构筑一个 formbean 的实例 (6)formbean 的 reset()方法备调用 (7)调用对应的 setter 方法,对状态属性赋值 (8)如果 validatede 的属性被设置为 true,那么就调用 formbean 的 validate()方法。(9)如果 validate()方法没回到任何错误,控制器将 actionform 做为参数,托付给action 实例的 execut
10、e()方法并继续执行。8、formbean 的作用 请问:formbean 就是一种 javabean,除了具备 javabean 的常规方法,还涵盖一些特定方法,用作检验表单数据,以及将其属性再次设置为默认值。formbean 用以展开 view组件和 controller 组件之间表单数据的传达。view 组件发送至用户输出的表单数据,留存在 formbean 中,把它传达给 controller 组件,controller 组件可以对 formbean 中的数据展开修正。9、forward 与 global-forward 的区别 请问:forward 就是根据 actionreturn
11、 的值找出对应的 jsp 页。当多个 action 共同return 同一个值时,可以将这个 forward 元素写下在 global-forward 中。struts 常见面试题篇 2 1.问题:在 struts 应用领域的视图中涵盖哪些组件?(a)jsp (b)servlet (c)actionservlet (d)action (e)代表业务逻辑或业务数据的 javabean (f)ejb (g)客户化标签 2 问题:在 struts 应用领域的控制器中涵盖哪些组件?(a)jsp (b)servlet (c)actionservlet (d)action (e)代表业务逻辑或业务数据的
12、javabean (f)ejb (g)客户化标签 3.在 struts 配置文件中 action 元素涵盖哪些属性和子元素?path 属性:指定请求访问 action 的路径 type 属性:选定 action 的完备类名 name 属性:指定需要传递给 action 的 actionformbean scope 属性:选定 actionformbean 的放置范围 validate 属性:指定是否执行表单验证 input 属性:选定当表单检验失利时的留言路径。元素还包含一个子元素,它定义了一个请求转发路径。4.问题:在 struts 应用领域的模型中涵盖哪些组件?(a)jsp (b)serv
13、let (c)actionservlet (d)action (e)代表业务逻辑或业务数据的 javabean (f)ejb (g)客户化标签 5.问题:struts 框架中,关于 formbean,以下观点恰当的就是:aformbean 是一种数据 bean,主要用来封装表单提交上来的数据,并把这些数据传递给 action b 在 formbean 中可以对页面上传达去的参数展开一下格式上的检验,这种检验就是一种客户端的检验 c 用户每次提交表单,都会产生一个新的 formbean 实例 d 动态 formbean 无法展开检验操作方式 6.问题:struts 框架中,在一个 action
14、的配置信息中,name 属性指的是:a 当前 action 实例的名字 b 当前 action 所在的类的名字 c 该 action 中调用的 formbean 的实例的名字 d 该 action 中调用的 formbean 的类的所在包名 7.问题:关于 struts 项目中的类与 mvc 模式的对应关系,观点错误的就是?ajsp 文件实现视图 view 的功能 bactionservlet 这一个类就是整个 struts 项目的控制器 cactionform、action 都属于 model 部分 d 一个 struts 项目就可以存有一个 servlet 8、问题:以下哪些说法是正确的?
15、选项:(a)每个 http 命令对应一个单独的 actionservlet 实例 (b)对于每个请求访问 helloaction 的 http 请求,struts 框架会创建一个单独的helloaction 实例。(c)每个子应用领域对应一个单独的 requestprocessor 实例 (d)每个子应用对应一个单独的 web.xml 文件 9actionformbean 对象就是由谁建立的?(a)标签处理类 (b)actionservlet (c)requestprocessor (d)action 10、struts 框架,错误的是?astruts 中无法顺利完成上载功能 bstruts
16、框架基于 mvc 模式 cstruts 框架难引发流程繁杂、结构不准确等问题 dstruts 可以有效地降低项目的类文件数目 struts 常用面试题篇 3 1、问题:把静态文本放在 resourcebundle 中,而不是直接在 jsp 文件中包含这些静态文本,有什么优点?提升可维护性提升可以器重性积极支持国际化 2.问题:关于 struts 项目中的类与 mvc 模式的对应关系,说法错误的是?ajsp 文件同时实现视图 view 的功能 bactionservlet 这一个类是整个 struts 项目的控制器 cactionform、action 都属 model 部分 d 一个 stru
17、ts 项目只能有一个 servlet 3.struts 工作机制?为什么必须采用 struts?工作机制:struts 的工作流程:在 web 应用启动时就会加载初始化 actionservlet,actionservlet 从 struts-config.xml 文件中加载布局信息,把它们放置至各种布局对象 当 actionservlet 接收到一个客户请求时,将执行如下流程.-(1)检索和用户命令相匹配的 actionmapping 实例,如果不存有,就回到命令路径违宪信息;-(2)如果 actionform 实例不存在,就创建一个 actionform 对象,把客户提交的表单数据保存到
18、actionform 对象中;-(3)根据布局信息同意与否须要表单检验.如果须要检验,就调用 actionform 的validate()方法;-(4)如果 actionform 的 validate()方法返回 null 或返回一个不包含 actionmessage的 actuiberrors 对象,就表示表单验证成功;-(5)actionservlet 根据 actionmapping 所涵盖的态射信息同意将命令发送到哪个action,如果适当的 action 实例不存有,就先建立这个实例,然后调用 action 的 execute()方法;-(6)action 的 execute()方法
19、返回一个 actionforward 对象,actionservlet 在把客户请求转发给 actionforward 对象指向的 jsp 组件;-(7)actionforward 对象指向 jsp 组件分解成动态网页,回到给客户;为什么要用:jsp、servlet、javabean 技术的发生给我们构筑强悍的企业应用系统提供更多了可能将。但用这些技术构筑的系统非常的于是乎,所以在此之上,我们须要一个规则、一个把这些技术组织起来的规则,这就是框架,struts 便应运而生。基于 struts 开发的应用由 3 类组件构成:控制器组件、模型组件、视图组件 4.struts 的 validate
20、框架就是如何检验的?在 struts 配置文件中配置具体的错误提示,再在 formbean 中的 validate()方法具体调用。5.说道下 struts 的设计模式 mvc 模式:web 应用程序启动时就会加载并初始化 actionservler。用户提交表单时,一个配置好的 actionform 对象被创建,并被填入表单相应的数据,actionservler 根据struts-config.xml 文件配置好的设置决定是否需要表单验证,如果需要就调用actionform 的 validate()验证后选择将请求发送到哪个 action,如果 action 不存在,actionservle
21、t 会先创建这个对象,然后调用 action 的 execute()方法。execute()从actionform 对象中获取数据,完成业务逻辑,返回一个 actionforward 对象,actionservlet 再把客户请求转发给 actionforward 对象指定的 jsp 组件,actionforward对象指定的 jsp 生成动态的网页,返回给客户。6、struts 的应用领域(如 struts 架构)struts 是采用 javaservlet/javaserverpages 技术,开发 web 应用程序的开放源码的framework。采用 struts 能开发出基于 mvc(model-view-controller)设计模式的应用构架。struts 有如下的主要功能:一.包含一个 controllerservlet,能将用户的请求发送到相应的 action 对象。二.jsp 自由 tag 库,并且在 controllerservlet 中提供关联支持,帮助开发员创建交互式表单应用。三.提供了一系列实用对象:xml 处理、通过javareflectionapis 自动处理 javabeans 属性、国际化的提示和消息。
限制150内