Struts学习笔记:操作流与拦截器应用

需积分: 9 2 下载量 31 浏览量 更新于2024-09-18 收藏 11KB TXT 举报
"Struts 学习笔记" Struts 是一个基于 Java 的开源 Web 开发框架,它遵循 Model-View-Controller (MVC) 设计模式,用于简化企业级 Web 应用程序的开发。以下是对您提供的部分内容的详细解读: 1. 字符编码设置: 首先,提到的是在 Struts 配置文件(如 struts-config.xml)中设置字符编码的重要性,使用 `<constant>` 标签定义了 `"struts.i18n.encoding"` 属性为 UTF-8,确保了不同语言环境下的文本正确显示。 2. 下载文件操作: 一个具体的 `Action` 示例展示了如何实现文件下载功能。当用户请求下载 `.gif` 文件时,需要指定输入路径(`<paramname="inputPath">/images/.gif</param>`),并配置 `result` 元素,如指定内容类型 (`contentType`)、文件名 (`contentDisposition`) 和缓冲区大小 (`bufferSize`),以便正确处理流式数据传输。 3. Action 获取 HTTP Session: `ActionContext` 是 Struts 中的一个关键对象,它提供了与当前请求相关的上下文信息,包括 `HttpSession`。通过 `ActionContext.getContext()` 方法,可以获取到 `session` 对象,这对于需要持久化用户状态或会话信息的应用场景至关重要。 4. 配置拦截器栈: Struts 使用拦截器来增强 Action 的功能,如验证、事务管理等。拦截器栈 (`interceptor-stack`) 是一组拦截器的集合,每个拦截器可以有自己的属性 (`<interceptor-refname="һ"/>, <interceptor-refname="">`)。在配置时,需要注意不能省略 `<interceptor-stack>` 的引用,同时确保至少有一个有效的拦截器。 5. 参数绑定时机: Struts 支持两种参数绑定方式:一是初始化时(`<paramname=""value="">`),即在 Action 创建时就绑定;二是运行时绑定,通常发生在特定操作或条件满足时。 6. 默认拦截器引用和包扫描: `<default-interceptor-ref/>` 用于指定 Action 默认使用的拦截器包,这通常是应用的基础拦截器。在默认情况下,如果没有特别配置,Struts 会自动扫描指定的包以查找需要的拦截器。而对拦截器的实例化和配置,通常需要在 `package` 标签下进行。 7. 实现自定义拦截器接口: 如果需要扩展 Struts 的功能,可能需要创建自定义的拦截器实现 `xwork.interceptor.I` 接口,然后在拦截器栈中引用这个自定义拦截器。 这些内容涵盖了 Struts 配置中的核心元素,包括字符编码、文件下载、HTTP Session管理、拦截器和参数绑定,以及基础组件的使用和自定义。在实际项目中,Struts 提供了一个强大的框架结构,帮助开发者构建高效、可维护的 Web 应用程序。