Struts2.1.8 教程:入门到实践
需积分: 9 98 浏览量
更新于2024-09-24
收藏 617KB DOC 举报
"struts2.1.8教程"
Struts2是一个基于MVC设计模式的Java Web应用程序框架,它提供了一种结构化的方式来组织和控制应用程序的流程。本教程将介绍如何使用Struts2,从基础的环境配置到具体功能的实现。
1. **准备工作及实例**
- 首先,你需要下载并解压Struts2的发行版,例如`struts-2.1.6-all.zip`。这个压缩包中包含了Struts2的核心组件、示例程序、文档、库文件和源代码。
- 六个基本的JAR包是Struts2运行所必需的,包括核心库`struts2-core-2.1.6.jar`、FreeMarker模板引擎`freemarker-2.3.13.jar`、日志包`commons-logging-1.0.4.jar`、OGNL库`ognl-2.6.11.jar`、XWork库`xwork-2.1.2.jar`以及文件上传组件`commons-fileupload-1.2.1.jar`。特别是`commons-fileupload-1.2.1.jar`,它是处理文件上传的关键,缺少它可能导致运行时异常。
2. **配置文件**
- **web.xml**:这是Web应用的部署描述符,用于配置Struts2的过滤器`StrutsPrepareAndExecuteFilter`。这个过滤器负责初始化Struts2框架并处理所有请求。你可以设置初始化参数,指定额外的XML配置文件,以及调整框架行为。
- **struts.xml**:这是Struts2的核心配置文件,你可以在这里定义Action、结果、拦截器等,并可以包含其他配置文件。每个不同的模块可以通过单独的配置文件来管理,使代码更易于维护和扩展。
3. **Struts2的使用**
- **struts.xml配置**:在struts.xml中,你可以定义Action类及其对应的URL路径,设置Action的输入和输出结果,以及配置拦截器栈。
- **Action获取Scope对象**:在Action中,你可以通过`ActionContext`获取到Servlet上下文中的各种Scope对象,如request、session、application等,以便于在业务逻辑中存储和检索数据。
- **OGNL与ValueStack**:OGNL(Object-Graph Navigation Language)是Struts2中的表达式语言,用于读取和设置对象属性。ValueStack是OGNL使用的数据结构,它保存了请求上下文中所有的对象,使得在视图层可以直接通过OGNL表达式访问Action中的属性。
- **拦截器**:Struts2的拦截器是实现业务逻辑和控制逻辑分离的重要机制。你可以自定义拦截器来执行一些预处理或后处理任务,比如日志记录、权限检查、事务管理等。
- **使用标签**:Struts2提供了丰富的标签库,如`s:form`、`s:textfield`、`s:submit`等,用于构建动态的用户界面。这些标签基于FreeMarker或JSP,简化了视图层的开发。
4. **实例和实践**
- 实践是学习Struts2的最佳方式。你可以从提供的示例程序开始,逐步了解如何创建Action、配置struts.xml、使用OGNL表达式、设置拦截器以及在页面上使用Struts2标签。
Struts2提供了一套完整的解决方案来构建Java Web应用,通过合理的配置和编程,可以使应用程序更加模块化、可维护且易于扩展。理解和掌握上述知识点,将有助于你有效地使用Struts2框架来开发高效、稳定的Web应用。
2021-04-06 上传
2011-07-07 上传
2010-01-21 上传
2019-04-10 上传
2010-02-25 上传
2012-06-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
qixianglu58
- 粉丝: 0
- 资源: 1
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析