整理链接:http://blog.csdn.net/chen978616649/article/details/7599901
struts1:核心控制器:ActionServlet负责拦截用户的所有请求
三个重要组成部分:Action、ActionForm、ActionForward
struts2:核心控制器:FilterDispatcher,负责拦截用户一系列拦截器,
拦截器负责将HttpServletRequest请求中的请求参数解析出来,
传入action中,并回调Action的execuete的方法处理用户请求。
实现类方面:
strust1:要求action 继承一个抽象基类
struts2:实现一个action接口,
提供了一个 ActionSupport基类去实现常用的接口,
(action接口不是必须实现的,只有一个 execute方法的POJO类就可以做为struts2的Action)
线程模式方面:
strust1:单例模式且必须是线程安全。
struts2:为每一个请求产生一个实例,没有线程安全问题。
servlet依赖方面:
strust1:依赖于Servlet API,action的execute方法中有HttpServletRequest 和HttpServletResponse方法
struts2:不依赖于Servlet API。
可测性方面(不太明白):
strust1:因依赖于Servlet API,使得其测试依赖于Web容器,为脱离Wbe容器,需借助于第三方扩展:Struts TestCase,
该扩展下包含了系列的Mock对象(模拟HttpServletResqust和HttpServletResponse对象)
struts2:可以通过初如化、设置属性、调用方法来测试。
封装请求参数:
strust1:ActionForm对象封装用户的请求参数,所有的ActionForm必须继承一个基类:ActionForm,普通javaBean不能用作ActionForm。
struts2:使用Action属性来封装用户请求属性。还提供了ModelDriver模式,用单独的Model来封闭用户请求参数。
表达式语言方面:
strust1:整合了JSTL。
struts2:可使用JSTL,还整合了OGNL。
类型转换:
strust1:ActionFrom属性通常都是String类型。
struts2:使用了 Commons-Beanutils进行类型转换,每个类一个转换器,转换器是不可配置。
使用OGNL进行类型转换,支持基本数据类型和常用对象之间的转换。
数据校验:
struts1:ActionForm重写validate方法中手动校验。通过整合Commons alidator框架来完成数据校验。
struts2:支持通过重写validate方法进行校验,也支持整合XWork校验框架进行校验。
相关推荐
### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...
Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...
### Struts1与Struts2原理及区别详解 #### Struts1原理概述 **Struts1** 是一种基于MVC架构的开源Java Web框架,它主要用于构建动态网站和应用程序。Struts1的核心组件包括ActionServlet、ActionForm以及Action...
### Struts1与Struts2的主要区别 #### 1. Action类的设计差异 - **Struts1**: 在Struts1框架中,Action类必须继承自一个抽象类`org.apache.struts.action.Action`。这种方式可能导致的问题是代码灵活性较低,尤其...
下面我们将深入探讨Struts1和Struts2的区别。 1. 设计模式: - **Struts1**:基于Front Controller模式,只有一个Servlet(ActionServlet)处理所有请求。它使用Plug-In和Dispatcher机制来实现业务逻辑和视图的...
Struts1和Struts2是两个非常著名的Java Web框架,它们在处理MVC(Model-View-Controller)架构方面有着显著的区别。以下是关于这两个框架在关键特性上的对比: 1. **Action类**: - **Struts1**:要求Action类继承...
### Struts2与Struts1的主要区别 #### Struts2架构设计与实现方式 - **Struts2**在设计上采用了更加灵活的方式,每个请求都对应一个实例化的Action对象,而不是像**Struts1**那样在整个请求周期内共享同一个Action...
### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...
而Struts2则是在Struts1的基础上进行了全面改进,采用了拦截器(Interceptor)机制,使得处理请求的方式更加灵活和模块化。 **2. 拦截器:** Struts2的核心就是拦截器,它们是基于责任链模式实现的,可以进行一系列...
视图层的绑定方面,Struts1依赖标准JSP机制,而Struts2引入了ValueStack技术,使得taglib可以直接访问值栈中的对象,无需在视图层与对象进行一对一绑定,提高了代码的复用性。 类型转换上,Struts1使用Apache ...
### Struts1与Struts2的区别与对比 #### 概述 Struts1与Struts2是基于Java的两种流行的Web应用框架,它们都遵循MVC(Model-View-Controller)设计模式,用于构建结构化的Web应用程序。Struts1是早期版本,在2000...
### Struts1与Struts2的本质区别 #### 一、Action实现类的对比 - **Struts1**:要求Action类必须继承一个抽象基类,这意味着开发者必须遵守框架提供的特定结构,这在一定程度上限制了灵活性。此外,由于依赖于抽象...
在探讨Struts2与Struts1的区别时,我们需深入理解这两个框架的设计理念、架构模式以及它们在实际应用中的表现差异。以下将从多个角度详细分析这两种流行Java Web框架的不同之处。 ### 1. **Action类的区别** #### ...
**Struts2与Spring MVC比较:** 1. **灵活性**:Spring MVC允许更多的自定义,如自定义拦截器、视图解析器,而Struts2的扩展性相对弱些。 2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2...
Struts1.x与Struts2.x是两种非常流行的Java Web应用程序框架,它们都由Apache软件基金会开发,旨在简化MVC(Model-View-Controller)架构的实现。然而,两者在设计哲学、功能特性以及实现方式上存在显著差异。以下是...
随着技术的发展与进步,Struts1作为曾经广泛使用的Web应用框架,逐渐被Struts2等新一代框架所取代。Struts2以其更加灵活的设计、丰富的特性以及更好的性能表现成为众多开发者的首选。本文将深入探讨如何从Struts1...
Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...
1. **Action类与Result**:Struts 2中的Action类替代了Struts 1的Form Bean,负责处理用户请求并返回结果。Result则定义了Action执行后的跳转逻辑,可以是页面、重定向或任何其他响应。 2. **拦截器(Interceptor)...