Struts1的体系结构分析

一、Struts的体系结构




如图所示,Struts 是MVC的一种实现,其体系结构包括模型、视图和控制器三部分。  
  下面让我们从MVC的角度来看看struts的体系结构与工作原理:

   1. Model部分

    Struts 的Model部分由 ActionFormBean和JavaBean组成。其中ActionForm用于封装用户请求参数,所有的用户请求参数由系统自动封装成ActionForm对象。该对象被ActionServlet转发给Action;然后 Action根据ActionForm里的请求参数处理用户请求。

    而JavaBean则封装了底层的业务逻辑,包括数据库访问等。在更复杂的应用中,JavaBean所代表的绝非一个简单的JavaBean,可能是EJB组件或者其他的业务逻辑组件。大型应用程序通常在Bean方法内部封装事务逻辑。比如购物车Bean,就会利用拥有状态信息的会话bean保存和读取用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类(它是struts框架中的业务逻辑控制器)对象中。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。

   2. View部分

    Struts 的View 部分采用 lSP 实现。 Struts提供了丰富的标签库,通过这些标签库可以最大限度地减少脚本的使用。这些自定义的标签库可以实现与Model(Bean)的有效交互,并增加了显示功能。如<bean:write>标签就可以用来显示JavaBean(包括ActionFormBean)属性。

   整个应用由客户端请求(如提交Form表单)驱动,当客户端请求被ActionServlet类对象(程序根据web.xml中配置的ActionServlet初始化类对象)拦截时,ActionServlet根据请求决定是否需要调用Model处理用户请求,当用户请求处理完成后,其处理结果通过JSP 呈现给用户。

   3.Controller部分

    Struts 的Controller由两个部分组成。系统核心控制器和业务逻辑控制器。其中,ActionServlet为系统核心控制器。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成一个标准的Servlet。该控制器负责拦截所有Http请求,然后根据用户请求决定是否需要调用业务逻辑控制器,如果需要调用业务逻辑控制器,则将请求转发给Action处理,否则直接转向请求的JSP页面。

   业务逻辑控制器负责处理用户请求,但业务逻辑控制器本身并不具有处理能力,而是调用 Model来完成处理。业务逻辑控制器对应图中的Action部分。

  Action的业务逻辑实现,是通过调用ActionServlet传递给自己的ActionMapping、ActionForward等组件对象协调完成的。其中,ActionMapping与ActionForward指定了不同业务逻辑或流程的运行方向。

参考资料:

http://blog.sina.com.cn/s/blog_5f30147a0100p1o6.html

http://hi.baidu.com/wtx521/blog/item/ca256f5649d890113a293596.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值