Struts2入门教程:从零开始学习Struts2框架
4星 · 超过85%的资源 需积分: 9 189 浏览量
更新于2024-10-13
2
收藏 577KB PDF 举报
"Struts2教程,学习Struts2的各种技术,包括开发环境配置、核心组件及使用方法,对比与Struts1.x的区别"
在Java Web开发领域,Struts2是一个广泛使用的MVC(Model-View-Controller)框架,它是基于Webwork技术构建的。尽管在大版本号上是Struts的第二个版本,但在设计和实现上,Struts2与Struts1.x有显著的不同。Struts2引入了许多改进,提供了更灵活、更强大的功能,并且在配置和使用上进行了简化。
**1. 开发环境和依赖**
在学习Struts2时,通常会使用如MyEclipse这样的IDE,尽管在MyEclipse6中不直接支持Struts2,但可以通过手动添加所需的库来使用。Web服务器通常选择Tomcat,而Struts2的版本在此教程中为2.0.11.1。关键的依赖库包括`struts2-core-2.0.11.1.jar`、`xwork-2.0.4.jar`、`commons-logging-1.0.4.jar`、`freemarker-2.3.8.jar`和`ognl-2.6.11.jar`等。这些库分别对应Struts2的核心组件、Webwork的技术基础、日志处理、模板引擎和对象-图形表示语言。
**2. Struts2与Struts1.x的区别**
与Struts1.x相比,Struts2在很多方面进行了重构和优化:
- **配置方式**:Struts2的配置文件更加灵活,可以使用XML或者注解,而Struts1.x主要依赖XML配置。
- **拦截器**:Struts2引入了拦截器(Interceptor)的概念,允许开发者定义和组合不同的处理逻辑,增强了可扩展性。
- **动作类(Action)**:Struts2的动作类不再需要继承特定的Action类,而是通过实现特定接口或使用注解来定义动作。
- **请求处理**:Struts2支持更多种方式的请求映射,比如使用通配符和正则表达式,而Struts1.x的请求映射较为固定。
- **视图层**:Struts2支持多种视图技术,如JSP、FreeMarker、Velocity等,而Struts1.x主要使用JSP。
**3. 建立Struts2应用的基本步骤**
不同于Struts1.x,建立Struts2应用的步骤包括:
1. **添加依赖**:将上述提到的Struts2及其依赖库添加到项目类路径中。
2. **配置web.xml**:配置Struts2的前端控制器(Filter Dispatcher),而不是像Struts1.x那样配置ActionServlet。
3. **创建Action类**:编写业务逻辑处理类,无需直接继承特定的Action类,而是实现`com.opensymphony.xwork2.ActionSupport`或使用注解。
4. **编写结果映射**:在Struts2的配置文件(struts.xml或类似的)中定义动作与视图的映射。
5. **视图层的构建**:创建对应的视图页面,如JSP或FreeMarker模板。
6. **测试运行**:通过URL访问应用程序,如`http://localhost:8080/struts2/index.action`。
**4. 动作和表单**
在Struts2中,ActionForm的概念被淡化,通常使用POJO(Plain Old Java Object)作为Action类的属性,直接绑定请求参数,减少了额外的类定义。
**5. 国际化与异常处理**
Struts2提供了内置的国际化和异常处理机制,允许开发者方便地管理错误消息和多语言支持。
Struts2提供了一个更加现代化、灵活和易于扩展的MVC框架,它的出现是为了弥补Struts1.x的一些不足,使得Java Web开发更加高效。通过深入学习Struts2,开发者能够更好地掌握Web应用程序的架构和设计,提高开发效率和代码质量。
2011-11-30 上传
2013-01-23 上传
2023-05-19 上传
2023-09-02 上传
2024-01-02 上传
2023-03-27 上传
2023-08-10 上传
2023-09-14 上传
2023-03-09 上传
jiangfengwei19860122
- 粉丝: 0
- 资源: 1
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析