面试题

来源:互联网 发布:怎么抢淘宝秒杀的东西 编辑:程序博客网 时间:2024/06/16 16:58

Struts1

Struts2

的区别

 

1)

 

数据封装:

Struts1

From

类和

Action

类,

属性封装

From

类里,在

Struts2

里只有

Action

类,属性直接封装

Action

类里。

 

2)

 

路径访问:

Struts1

中访问

Action

必须使用

*.do

Struts2

中支持

*.do

以及

*.action

 

3)

 

主控制器:

Struts1

中主控制器是

Servlet

Struts2

中主控制器是

Filter

 

4)

 

Action

类:

Struts1

Action

必须继承

org.apache.struts.action.Action

Struts2

Action

可以是一个普通

JavaBean

 

5)

 

线程模型:

Struts1

Action

工作在单例模式,

一个

Action

的实例处理所有的请求,

线程不安全。

Struts2

Action

是一个请求对应一个实例,线程安全。

 

6)

 

Servlet

依赖:

Struts1

Action

依赖于

Servlet 

API

Struts2

中的

Action

不再依赖于

Servlet API

,有利于测试,并且实现

TDD

 

7)

 

表达式语言:

Struts1

中整合了

EL

,但是

EL

对集合和索引的支持不强,

Struts2

整合

OGNL

Object Graph NavigationLanguage

,对象导航图语言)

,功能更强大,更便

于使用。

 

8)

 

绑定值到视图:

Struts1

使用标准的

JSP

Struts2

使用“

ValueStack

(值栈)

”技术。

ValueStack

策略允许通过一系列名称相同但类型不同的属性重用页面(

view

 

9)

 

数据校验:

Struts1

中支持在

ActionForm

中覆盖

validate

方法或者使用

Commons 

Validator

框架。

Struts2

支持在

Action

中重写

validate

方法或者使用

XWork

的验证

框架。

 

10)

 

Action

执行控制:

Struts1

支持每一个模块对应一个请求处理,但是模块中的所有

Action

必须共享相同的生命周期(

Request 

Processors

Struts2

支持通过拦截器堆

栈为每一个

Action

创建不同的生命周期。

 

11)

 

类型转换:

Struts1

ActionForm

属性经常都是

String

Struts1

Commons-Beanutils

来进行类型转换。转换每一个类,而不是为每一个实例配置。

Struts2

使用

OGNL

进行类型转换。提供基本和常用对象的转换器。

 

原创粉丝点击