转载

《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC

1.3.1  Struts2MVC

前面讲到Struts2是一种基于MVC的Web应用框架,下面就来看看Struts2和MVC的关系。

当然,由于我们还没有深入学习Struts2的各部分功能,这里只是先给大家讲一下Struts2是如何跟MVC对应的,其中一些名词所代表的具体功能,比如前端控制器(FilterDispatcher)、动作(Action)、结果(Result)等,在以后都会有专门的章节去讲解,现在不必在意他们的细节。

图1.5 Struts2中的MVC关系(私塾的图挂了,以后补上)

 

 

  • 控制器——FilterDispatcher

       用户请求首先到达前端控制器FilterDispatcher。FilterDispatcher负责根据用户提交的URL和struts.xml中的配置,来选择合适的动作(Action),让这个Action来处理用户的请求。

FilterDispatcher其实是一个过滤器(Filter,servlet规范中的一种web组件),它是Struts2核心包里已经做好的类,不需要我们去开发,只是要在项目的web.xml中配置一下即可。FilterDispatcher体现了J2EE核心设计模式中的前端控制器模式。

  • 动作——Action

       在用户请求经过FilterDispatcher之后,被分发到了合适的动作Action对象。Action负责把用户请求中的参数组装成合适的数据模型,并调用相应的业务逻辑进行真正的功能处理,然后获取下一个视图展示所需要的数据。

       Struts2 的Action,相比于别的web框架的动作处理,有一个很大的进步,它实现了与Servlet API的解耦,使得在Action里面不需要再直接去引用和使用HttpServletRequest与HttpServletResponse等接口。因而使得Action的单元测试更加简单,而且强大的类型转换也使得我们少做了很多重复的工作。

  • 视图——Result

       视图结果用来把动作中获取到的数据展现给用户。在Struts2中,多种优秀的结果展示方式正是其吸引人的特性之一,既有常规的jsp,又有模板freemarker、velocity,还有各种其它专业的展示方式,如图表jfreechart、报表JasperReports、将XML转化为HTML的XSLT等等。而且,各种视图结果在同一个工程里面还可以混合出现。

       看到这里,应该大致知道了Struts2是什么,能干什么,粗略的了解到Struts2里面有什么,接下来,就应该看看究竟如何使用Struts2来开发基于MVC的Web应用了。

本教程是ajava.org会员hellospring的原创作品,转载请注明出处。

作者博客:http://sishuok.com/forum/blogPost/list/3983.html

作者ajava空间:http://ajava.org/space-uid-2358.html

正文到此结束
Loading...