Struts2面试题

上传人:笛音 文档编号:15887116 上传时间:2017-09-05 格式:PDF 页数:3 大小:7.15KB
返回 下载 相关 举报
Struts2面试题_第1页
第1页 / 共3页
Struts2面试题_第2页
第2页 / 共3页
Struts2面试题_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Struts2面试题》由会员分享,可在线阅读,更多相关《Struts2面试题(3页珍藏版)》请在金锄头文库上搜索。

1、1) Struts2 如何启动Struts2 是通过 web.xml 中的过滤器 StrutsPrepareAndExecuteFilter 启动的, Tomcat 服务器启动的时候,会执行一次 StrutsPrepareAndExecuteFilter 里面的 init 方法,加载 struts.xml配置文件,将配置文件的内容封装为 javabean 存放在内存中,以后用户请求将会读取内存,读取数据,而不用每次都在 struts.xml 中读取。2) Struts2 的核心控制器 StrutsPrepareAndExecuteFilter 的作用StrutsPrepareAndExecut

2、eFilter 主要负责拦截 url 请求,可以在 web.xml 中配置拦截的 url,/* 代表拦截所有的请求, 执行 doFilter 方法默认情况下,如果用户请求的路径 不带后缀或者后缀以 .action 结尾, 这时请求将被转入 struts2 框架处理, 否则struts2 框架将略过该请求的处理。3) struts2 配置文件的加载顺序?struts.xml struts.properties 常量可以在 struts.xml 或 struts.properties 中配置, 如果在多个文件中配置了同一个常量, 则后一个文件中配置的常量值会覆盖前面文件中配置的常量值 . stru

3、ts.xml 文件的作用:通知 Struts2 框架加载对应的 Action 资源4) struts2 是如何管理 action 的?这种管理方式有什么好处?struts2 框架中使用包来管理 Action,包的作用和 java 中的类包是非常类似的。 主要用于管理一组业务功能相关的 action 。 在实际应用中, 我们应该把一组业务功能相关的 Action 放在同一个包下。5) struts2 中的默认包 struts-default 有什么作用?1.struts-default 包是由 struts 内置的,它定义了 struts2 内部的众多拦截器和 Result 类型,而 Strut

4、s2 很多核心的功能都是通过这些内置的拦截器实现, 如: 从请求中 把请求参数封装到 action 、文件上传和数据验证等等都是通过拦截器实现的。当包继承了 struts-default 包才能使用 struts2 为我们提供的这些功能。2.struts-default 包是在 struts-default.xml 中定义, struts-default.xml 也是 Struts2 默认配置文件。 Struts2 每次都会自动加载 struts-default.xml 文件。3.通常每个包都应该继承 struts-default 包。6) struts2 的 action 的 URL访问路径

5、由什么构成?由两部分组成:包的命名空间 +action 的名称 + action 的后缀 , /crud1/userAdd.action ,crud1 是命名空间, userAdd 是 struts.xml 中配置的 action 的名称。7)在 struts.xml 中可以不为 action 指定 class属性吗? struts2 中有哪些默认的属性?可以,如果没有为 action 指定 class,默认是 com.opensymphony.xwork2.ActionSupport 默认属性:如果没有为 action 指定 class ActionSupport 如果没有为 action

6、指定 method execute() 注意: ActionSupport 的 execute 方法里面就一句话 return success; 如果没有指定 result 的 name success 如果没有指定 result 的 type dispatcher action 中默认都有一个拦截器的引用,即: ; 注意:1.一旦我们为该包中的某个 action 显式指定了某个拦截器,则默认拦截器不会起作用,所以此时要显式的引进默认的拦截器;2.每个包只能指定一个默认拦截器,每个默认拦截器只针对当前包下有效。8) struts2 如何对指定的方法进行验证?1.validate()方法会校验

7、action 中所有与 execute 方法签名相同的方法;2.要校验指定的方法通过重写 validateXxx()方法实现, validateXxx()只会校验 action 中方法名为 Xxx 的方法。其中 Xxx 的第一个字母要大写;3.当某个数据校验失败时, 调用 addFieldError() 方法往系统的 fieldErrors 添加校验失败信息(为了使用 addFieldError() 方法, action 可以继承 ActionSupport ) ,如果系统 的 fieldErrors包含失败信息, struts2 会将请求转发到名为 input 的 result;4.在 in

8、put 视图中可以通过 显示失败信息。5.先执行 validateXxxx()-validate()- 如果出错了, 会转发 所指定的页面,如果不出错,会直接进行 Action:execute() 方法 . 9)拦截器的作用?拦截器与过滤器的区别?1) 拦截器是对调用的 Action 起作用, 它提供了一种机制可以使开发者可以定义在一个 action执行的前后执行的代码。拦截器只能拦截 Action, 说明白点拦截器其实是 Action 的功能块 ,只在 Action 前后执行。 拦截器可以抽象出一部分代码可以用来完善原来的 action 。 同时可以减轻代码冗余,提高重用率。2) 过滤器是拦

9、截用户请求的 ,范围明显比拦截器大的多。10)struts2 如何完成从 html 表单到 action 的类型转换?1.在 struts2 中 , 把请求参数映射到 action 属性的工作由 Params 拦截器负责 , 它是默认的 defaultStack 拦截器中的一员 . Params 拦截器可以自动完成字符串和基本数据类型之间转换 . 2.在 web 应用中,提交的数据基本都是字符串。3. 对于引用类型的数据(除 String、 Collection)转换,需要自定义类型转换器;4.自定义类型转化器必须实现 TypeConverter 接口或对这个接口的某种具体实现做扩展,如: S

10、trutsTypeConverter,重写 convertToString 和 convertFromString 方法;5.两种自定义类型的转换器: 局部:创建一个属性文件 : ActionClassName-conversion.properties, 该文件需和相对应的 动 作 类 (Action) 放 在 同 一 个 目 录 下 , ActionClassName 是 Action 的 类 名 , 后 面 的-conversion.properties 是固定写法。在 properties 文件中的内容为: 属性名称 =类型转换器的全类名 全局:在 WEB-INF/classes/ 目

11、录下创建 xwork-conversion.properties 文件 . 在 properties文件中的内容为: 待转换的类型 =类型转换器的全类名注意:对于转换的是属性,只需要写属性名, 如果是对应的是类型,则需要写全类名11) .struts2 如何防止用户表单重复提交?第一步:在表单中加入 第二步,使用 token 栏截器,定义 invalid.token 结果集要使用 必须要在 struts.xml 的 action 中引用 token 的预定义拦截器。当然还可以使用 tokenSession 12) .struts2 如何完成文件的上传?1、 JSP页面:JSP页面的上传文件的组

12、件: ,如果需要一次上传多个文件 , 就必须使用多个 file 标签 , 但它们的名字必须是相同的,即: name=“ xxx”的值必须一样;2. 必须把表单的 enctype 属性设置为: multipart/form-data ;3.表单的方法必须为 post,因为 post 提交的数据在消息体中,而无大小限制。对应的 action:4.在 Action 中新添加 3 个和文件上传相关的属性5.如果是上传单个文件 , uploadImage 属性的类型就是 java.io.File, 它代表被上传的文件 , 第二个和第三个属性的类型是 String, 它们分别代表上传文件的文件名和文件类型,定义方式是分别是: jsp 页面 file 组件的名称 +ContentType, jsp 页面 file 组件的名称 +FileName 6 如果上上传多个文件 , 可以使用数组或 List

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号