struts2和struts1的区别

       Struts1的核心是控制器(核心控制器和业务逻辑控制器),核心~就是ActionsServlet,由struts1框架提供;业务逻辑~是用户自定义的Action,由应用开发者提供。

       拿MVC来说,Model部分主要由底层的业务逻辑组件充当,这些组件封装了底层数据库访问、业务逻辑方法实现(但其实对于一个成熟的企业应用而言,Model部分可能是一个或多个EJB组件,或者是一个WebService服务,而不是一个简单的JavaBean所能完成的)。即整个业务逻辑部分并不是由Struts1提供的,Struts1也没为Model组件提供任何支持。

View部分采用JSP实现。Struts1提供了丰富的标签库,可以因此最大限度的减少脚本的使用,但与Ties框架整合后的Struts1所支持的表现层技术非常单一:既不支持FreeMarker、Velocity等模板技术,也不支持JasperReports等报表技术。Controller部分(ActionServlet核心控制器和业务逻辑控制器),其中ActionServlet继承自HttpServlet,负责拦截所以Http请求,根据用户请求是否需要调用业务逻辑控制器,再请求Action处理或者请求道JSP页面。业务逻辑控制器本身其实并不具有处理能力,而是调用Model来完成用户请求的处理的。

   其实,对于任何的MVC框架而言,只实现了C(控制器)部分,但它负责用控制器调用业务逻辑组件,并负责控制器与视图技术(Jsp,FreeMarker和Velocity等)的整合。 但Struts1不支持FreeMarker、Velocity等模板技术,就造成了表现层技术的单一,只靠Jsp作为表现层技术是有一定制约性的。其次,Struts1与Servlet API严重耦合,在其逻辑控制器内,充满了大量的Servlet API(如execute方法中的HttpServletRequest和HttpServletResponse),严重依赖于Web容器,难于测试。还有Struts1 API (如:Action基类的继承,以及其中的ActionMapping、ActionForm、ActionForward类等),一旦系统需要重构,这些Action类将完全没用。

    Struts2使用了WebWork的设计核心,是WebWork的升级,是一次平滑的过渡,而不是Struts1的设计核心,所以2与1有相当大的区别。Struts2大量使用拦截器来处理用户请求,从而允许用户的业务逻辑与Servlet API分离。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值