Struts2入门教程:核心概念与配置解析
需积分: 6 123 浏览量
更新于2024-07-31
1
收藏 617KB DOC 举报
"struts2笔记初步修改版,包含struts2的基础知识,适合初学者学习。"
Struts2是一个流行的Java Web应用程序框架,用于构建基于MVC(模型-视图-控制器)架构的Web应用。它是在原有的Struts1基础上发展起来的,引入了更多的功能和改进,旨在提供更强大、更灵活的框架。
1. **准备工作**
- **安装与目录结构**:
- 解压`struts-2.1.6-all.zip`,会得到包括`apps`、`docs`、`lib`和`src`等目录。`apps`包含示例程序,`docs`存放官方文档,`lib`存放所有必需的JAR文件,而`src`则包含了源代码。
- **依赖JAR包**:
- `struts2-core-2.1.6.jar`:核心类库,包含Struts2框架的主要实现。
- `freemarker-2.3.13.jar`:Freemarker模板引擎,用于渲染UI标签。
- `commons-logging-1.0.4.jar`:日志工具包,用于日志记录。
- `ognl-2.6.11.jar`:对象图导航语言,Struts2通过OGNL来读写对象属性。
- `xwork-2.1.2.jar`:XWork框架,Struts2在其基础上构建。
- `commons-fileupload-1.2.1.jar`:文件上传组件,必须添加以支持文件上传功能。
2. **Struts2配置**
- **web.xml**:
- 是应用的部署描述符,配置`StrutsPrepareAndExecuteFilter`过滤器,负责初始化Struts2框架并处理所有请求。旧版本中配置的是`FilterDispatcher`,但新版本同样支持。配置项可以指定额外的XML配置文件,并影响框架行为。
- **struts.xml**:
- Struts2的核心配置文件,可以包含其他配置文件,方便按模块管理。通常做法是为每个模块创建独立的struts.xml,便于管理和维护。
3. **其他配置文件**
- **struts.properties**(参考def):
- 该文件用于设置全局属性,例如,可以定义Struts2的默认主题、拦截器栈等。它不是必须的,但可以根据需要自定义配置。
4. **工作原理**
- **Struts2的生命周期**:
- 请求到达时,`StrutsPrepareAndExecuteFilter`过滤器拦截请求,解析请求并调用Action。
- OGNL用于表达式语言,读取或设置Action的属性。
- 结果处理,通常通过Freemarker模板引擎将结果渲染成HTML并返回给客户端。
5. **核心概念**
- **Action**:业务逻辑的执行者,负责处理请求。
- **Interceptor(拦截器)**:在Action执行前后进行增强处理,如权限验证、日志记录等。
- **Result**:Action执行后的结果,决定如何展示给用户,可以是重定向、转发或渲染一个页面。
6. **优势**
- **灵活性**:Struts2允许通过配置文件和插件定制框架行为。
- **强大的表单处理**:支持文件上传,自动绑定表单数据到Action。
- **易于测试**:支持JUnit和其他单元测试框架进行Action的单元测试。
Struts2提供了一套全面的解决方案来构建MVC Web应用,它的强大之处在于其灵活性和可扩展性,使得开发者可以轻松地定制和优化应用。对于初学者来说,掌握Struts2的基本概念和配置是踏入Java Web开发的重要一步。
2010-07-20 上传
2010-11-16 上传
2012-04-11 上传
2010-07-26 上传
点击了解资源详情
点击了解资源详情
2024-10-24 上传
whoown
- 粉丝: 3
- 资源: 8
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手