Struts1.x与2.x全面解析:大牛整理的知识精华

需积分: 9 2 下载量 75 浏览量 更新于2024-09-12 收藏 49KB DOC 举报
"这是一份关于Struts框架的全面知识点总结,涵盖了1.x和2.x版本。Struts是一个基于MVC设计模式的Java Web框架,它帮助开发者组织代码,实现业务逻辑与显示层的分离。" Struts框架是Apache组织开发的一个开源项目,主要用于构建Java Web应用程序。它遵循Model-View-Controller(MVC)架构,旨在简化开发过程,提高代码的可维护性和可重用性。 在Struts1.x中,MVC模式的执行流程大致如下: 1. 用户通过浏览器发送HTTP请求到服务器。 2. 请求经过`ActionServlet`,这是Struts的核心组件,它负责拦截请求。 3. `ActionServlet`根据`struts-config.xml`配置文件中的信息,找到对应的`Action`类。 4. `Action`类执行相关的业务逻辑,并可能与`Model`进行交互,处理数据库操作等。 5. `Action`完成后,会返回一个`Forward`或`ActionForward`,指示应该跳转到哪个JSP页面(`View`)来展示结果。 6. `ActionServlet`将控制权交给`View`,JSP页面渲染并返回响应给客户端。 配置Struts1.x主要涉及以下步骤: 1. 将Struts库(包括所有必需的JAR文件)复制到`WEB-INF/lib`目录下。 2. 配置`web.xml`文件,声明`ActionServlet`作为Servlet容器的监听器和服务。 3. 创建`struts-config.xml`配置文件,定义`action-mappings`,指定`Action`类、`ActionForm`、转发路径等。 在`<action>`标签中,有几个关键属性: - `name`:指定了与`ActionForm`类相对应的名称,`ActionForm`用于收集和验证用户输入。 - `path`:定义了请求URL的路径,通常以斜杠`/`开头,匹配用户的请求。 - `scope`:定义了`ActionForm`对象的存储范围,可以是`request`或`session`。`request`范围表示对象只在当前请求中有效,`session`则在整个会话期间有效。 - `validate`:布尔值,决定是否在调用`execute`方法前验证`ActionForm`的数据。 Struts2.x相对于1.x版本进行了很多改进,例如: - 使用更灵活的配置方式,如XML、注解或纯Java配置。 - 提供了更强大的拦截器(Interceptor)机制,用于处理事务、权限验证等通用逻辑。 - 引入了`ValueStack`概念,使得模型数据可以直接在视图层使用,无需手动设置请求或会话属性。 - 支持更多视图技术,如FreeMarker、Velocity等,而不局限于JSP。 无论是Struts1.x还是2.x,它们都是为了简化Web应用开发,通过MVC模式使开发者能更好地组织代码,提高开发效率。理解并熟练掌握Struts框架,对于Java Web开发者来说是非常重要的技能。