Struts 1与 Struts2 的区别

struts1 与struts2 的区别。

    1.都是MVC 的WEB 框架,

    2 struts1 的老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本更低!struts2虽然基于这个框架,但是 应用群众并多,相对不成熟,未知的风险和变化很多,开发人员相对不好招,使用它开发项目的风险系数更大,用人成本更高!

   3.struts2 毕竟是站在前辈的基础设计出来,它会改善和完善struts1 中的一些缺陷,struts1 中一些悬而未决问题在struts2 得到了解决。

   4.struts1 的前端控制器是一个Servlet,名称为ActionServlet,struts2 的前端控制器是一个filter,在struts2.0 中叫FilterDispatcherstruts2.1 StrutsPrepareAndExecuteFilter

   5.struts1 action 需要继承Action struts2 action 可以不继承任何类struts1 对同一个路径的所有请求共享一个Action 实例,struts2 对同一个路径的每个请求分别使用一个独立Action 实例对象,所有对于struts2 的Action 不用考虑线程安全问题。

   6.struts1 中使用formbean 封装请求参数struts2 中直接使用action 的属性来封装请求参数。

   7.struts1 中的多个业务方法放在一个Action 中时即继承DispatchAction ),要么都校验要么都不校验对于struts2可以指定只对某个方法进行校验当一个Action 继承了ActionSupport且在这个类中只编写了validateXxx()方法那么则只对Xxx()方法进行校验。(一个请求来了的执行流程进行分析,struts2 是自动支持分模块开发,并可以不同模块设置不同的url 前缀,这是通过package 的namespace 来实现的;struts2 是支持多种类型的视图;struts2的视图地址可以是动态的,即视图的名称是支持变量方式的,举例,论坛发帖失败后回来还要传递boardid。视图内容显示方面:它的标签用ognl,要el 强大很多,在国际化方面支持分模块管理,两个模块用到同样的key,对应不同的消息;)与Struts1 不同,Struts2 对用户的每一次请求都会创建一个Action,所以Struts2 中的Action 是线程安全的。给我印象最深刻的是:struts 配置文件中的redirect 视图的url 不能接受参数,而struts2 配置文件中的redirect 视图可以接受参数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章