(1)struct简介

一、Servlet+JSP+JavaBean模型的缺点:
①流程凌乱:servlet在完成对用户请求的处理后,下一个页面时谁?如何跳转到 下一个页面?这些都是在servlet里面直接写代码来完成的。导致servlet既要处理请求,又要负责页面的流程,使得servlet功能不够单一,很难把握整个系统的页面流程,因为流程被分散到各个servlet里面了。
JSP设计模式↓↓
这里写图片描述

②数据传递无序:在model2模型中,数据都是使用Javabean传来传去,使用比较麻烦,而且面临复杂数据嵌套的时候使用Javabean常常力不从心。
③缺少辅助功能:几乎所以的东西都要程序员从头做起。
二、struct2是什么?
struct2是一种基于MVC(用struct2开发的web应用自然能够实现mvc)的轻量级(web服务器耗费资源少,如内存、CPU等)的web应用框架(struct2的应用范围)。
框架:就是能完成一定功能的半成品软件,有了框架,它为我们提供了一定的功能,就可以在框架的基础上,大大提高开发的效率和质量。
三、Struct2和MVC
①控制器—FilterDispatcher
用户的请求首先到达前端控制器FilterDispatcher。FilterDispatcher负责根据用户提交的URL和structs.xml中的配置,来选择合适的动作(Action),让这个Action处理用户的请求。FilterDispatcher其实是一个过滤器(filter、servlet规范中的一种web组件),它是struct2核心包里面做好的类,不需要我们去开发,只要在项目的web.xml中配置一个即可。filterDispatcher体现了j2ee核心设计模式中的前端控制器模式。
②动作—Action
在用户请求通过filterDispatcher之后,被分发到了合适的动作Action对象。Action负责把用户请求中的参数组装成合适的数据模型,并调用相应的业务逻辑进行真正的功能处理,然后获取下一个视图展示所需的数据。
struct2的Action,相比其他的web矿建的动作处理,有一个很大的进步,它实现了与servletAPI的解耦。使得在Action里面不需要再直接去引用和使用httpservletRequest与httpservletResponse的接口,因而使得Action的单元测试更加简单,而且强大的类型转换也使我们少做了许多重复的工作。
Action在mvc中充当控制器,是通过专门的servlet来实现的,该servlet是一个struct2API提供的ActionServlet类型的实例。ActionServlet类继承了Javax.servlet.http.HttpServlet类,因此该类的实例可以和普通的servlet一样工作,其作用是接收客户端浏览器的请求,然后选择执行相应的业务逻辑,再把响应结果送回客户端。
③视图–Result
视图结果用来把动作中获取到的数据展示给用户。在struct2中,多种优秀的结果展示正是其最吸引人的特征之一,既有常规的jsp,又有模板freemarker、velocity,还有各种其他专业的展示方式,如图表jfreechart、报表JasperReports、将xml转换为HTML的XSLT。
这里写图片描述

posted @ 2017-10-16 10:33  测试开发分享站  阅读(137)  评论(0编辑  收藏  举报