Struts是Apache软件基金会下的一个开源项目,主要提供MVC(Model-View-Controller)设计模式的实现,用于简化Java Web应用的开发。Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。
**Struts1**
Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的核心组件包括ActionServlet、ActionForm、Action、Tiles等。以下是一些关键知识点:
1. **ActionServlet**:这是Struts1的控制器,处理HTTP请求,并将请求分派给相应的Action。
2. **ActionForm**:负责接收和验证用户输入的数据,是模型层和视图层之间的桥梁。
3. **Action**:实现了业务逻辑,是应用程序的核心部分,接收ActionForm的数据并执行相关操作。
4. **Tiles**:用于页面布局,允许开发者创建可重用的页面片段,提高了应用的可维护性。
**Struts2**
Struts2在2007年发布,基于WebWork框架,引入了许多改进和新特性。相比Struts1,Struts2更强大、更灵活。其关键知识点包括:
1. **Action**:在Struts2中,Action类更加灵活,支持注解配置,可以使用OGNL(Object-Graph Navigation Language)进行数据绑定。
2. **Interceptor(拦截器)**:这是一个强大的功能,允许在Action执行前后插入自定义逻辑,如日志、权限检查等。
3. **Freemarker和Velocity模板引擎**:Struts2支持多种视图技术,提供了更丰富的模板语言选择。
4. **Struts2配置**:通过XML或注解进行配置,更加灵活且易于理解。
5. **Struts2插件**:有大量社区提供的插件,如i18n国际化、JSON支持、上传下载等,极大地扩展了框架的功能。
**jar包的使用**
在使用Struts1和Struts2时,需要添加对应的jar包到项目的类路径中。例如:
- **Struts 1.3.8 jar包**:这包含Struts1的主要库,如struts.jar、commons-logging.jar、commons-beanutils.jar等,用于实现MVC架构和相关功能。
- **strutsd2.0最基本的jar包**:这是Struts2的基本库,包括struts2-core.jar、ognl.jar、freemarker.jar等,用于运行Struts2框架的基础服务。
在实际项目中,还需要根据具体需求添加其他依赖,如数据库驱动、Spring整合等额外的jar包。
Struts1和Struts2都是为了简化Java Web应用的开发,提供了MVC模式的实现。尽管Struts2在许多方面进行了改进,但Struts1仍有许多项目在使用,理解这两个框架的差异和使用方法对于Java Web开发者来说非常重要。