Struts与Model2(一)

来源:互联网 发布:tensorflow 不完全开源 编辑:程序博客网 时间:2024/05/22 06:50

   我们知道Model2是基于MVC设计模式的一个经典的实现,而Struts也说是MVC的经典实现,那么两者有什么区别呢?下面我来通过Struts的执行原理来剖析两者的区别:

一.概念

  struts是一个基于MVC的Web开发框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

二.执行流程

  我们先看一个登录小例子,基于Model2我们需要做的事情:

  

  对比一下我们使用Struts需要做的事情:

    

  从表面上看好像就是把Model2中的Servlet换成了Struts中的Action,真实的情况是Struts把Servlet等一些框架实现进行了封装,我们来看一下Struts的真实的执行流程:

  

   从图中可以看到Struts将ActionServlet进行了封装,它是一个中央控制器,下面我们对Struts中的几个重要类进行一下简要讲解。

三.Struts中的类

 1.ActionServlet

    ActionServlet是Struts的一个中央控制器,是核心类,它负责截取url,取得ActionMapping(Action的配置信息),动态创建ActionForm,调用Action方法,最后通过ActionForward转向到一个新的页面。

    ActionServlet同样只是一个标准的Servlet,它也需要在web.xml中进行配置。由于我们的struts的实现需要从ActionServlet开始,所以在web.xml中设置其为自动启动(配置<load-on-startup>)。

  2.ActionForm

    ActionForm用于封装表单数据(因此ActionForm中的参数应与表单域的名字相同),并可自动转换数据类型(不用我们再手动强制转换数据类型了)。

  3.ActionMapping

    ActionMapping用来存储Action的配置信息,可通过ActionMapping来查找对应的Action。

  4.Action

    Action是一个业务逻辑层的控制器,它从ActionForm中取得表单数据,然后调用Model层的实现,最后返回转向信息类ActionForward。

  5.ActionForward

    ActionForward封装了页面转向信息,Action执行完后可调用它转向相应的页面。

原创粉丝点击