欢迎来到天天文库
浏览记录
ID:16440364
大小:176.50 KB
页数:13页
时间:2018-08-09
《基于jsp servlet的web应用框架的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于JSP/Servlet的Web应用框架的设计与实现周云,余青松,敬宗儒(华东师范大学计算中心,上海200062)摘要:Web应用程序的开发过程中存在着Framework的应用。这些Framework使开发过程十分规范。它们自动地处理了部分非业务逻辑的过程.从而使得程序员的主要精力专注于业务逻辑的实现。文中设计并且实现了一个简单的Framework模型,实现了部分的自动化处理。该模型的构建,验证了采用最基本的Java语言工具以及设计方式实现Framework的可能性。关键词:Web应用框架;MVC;设计和实现0.引言在开发Web应用程序的过程中
2、,特别是JSP应用程序,到处充斥着Framework的应用。这些Framework的技术相当成熟,规范十分完整。它们对于程序员的编码规范以及后台Model实体的管理相当完善。文中关注的重点是如何用最基本的Java语言工具和设计方式来设计和实现一个带有自动化操作功能的Framework,从而深人理解一些Framework内在处理机制。1.Framework概述人们需要一个Framework来对软件开发提供支持,并且对程序员所书写的代码进行规范。一些公共的非逻辑的处理过程应该做成共通模块,一些不好的编成习惯应该得到限制和纠正。同时,与数据库打交道的数
3、据Model也应该得到妥善管理。另外,这些操作的共通特性都是高于模块级别但又属于代码级别的。所以,应该设计出一个类似于规约性质同时又是以实际代码形式出现的管理体制。于是,Framework便诞生了。目前流行的Framework有很多,比如Struts,印ring,JSF等等[I]。它们使JSP程序员从散兵游勇转化为了正规军。它们的共同点都是拥有自动化操作“前端”以及资源管理的“后端”.笔者参照Struts的前端自动化操作过程设计并且实现了一个Framework模型,希望借此深入了解一些Framework的内部实现机制。2.Framework模型的
4、设计原则最根本的原则是Framework要给开发过程带来便利,使得开发过程更加规范完善。为了实现这个根本原则,必须解决两个问题:(1)尽量将非业务逻辑自动化处理;(2)将程序员的发挥空间进行限制。13对于第一个问题,通过对比研究可以发现,前台视图层回传参数一Servlet接受参数,并将参数封装到一个对象当中~Servlet选择正确的视图,并且进行显示,这三个步骤与业务逻辑没有关系[21。不管你是什么业务逻辑,这三个步骤总会独立地执行。业务逻辑只会出现在这三个步骤的间隙之间。应该据此对这三个步骤分别进行封装,实现自动化处理。对于第二个问题,可以提出
5、一个简单的解决办法:让程序员“只可能将正确的代码写在正确的地方”。把其他与业务逻辑没有关系的代码全部进行封装即可。综合所述,文中所描述的Framework模型的设计原则就是,封装非业务逻辑的操作,限制程序员的自由度。当然,这只是一个Framework模型初步设计与实现,进一步的应用,需要按照标准的封装方式完善整个Framework模型。3.Framework模型的设计Web程序的设计遵循现在成熟的MVC设计模式。Model的设计组合独立于Framework之外。View是属于前台视图层。Controler负责接收参数,调用对应的业务模型实体进行处
6、理,返回对应的视图。由此可见,对于业务模型实体的设计重要的一点就是它要能够自动地生成并且被Controller自动地调用,同时Controller还必须将对应的数据缓冲区传递给它。那么业务模型所需要的就是一个标记,一个能够表明它身份的标记。Framework模型的框架如图1所示,其Sequence图如图2所示;其UM类图如图3所示。3.1获取前台视图传回的参数先从获取前台视图传回的参数开始进行分析。既然要对这个过程进行自动处理,那么程序要获取HttpServletRequest当中各个参数的名字,进行数据缓冲的实体的引用,进行数据缓冲实体当中各个
7、对应属性的名字,进行属性设置和读取的所有方法的名字。可以利用Java的RTTI机制解决这个问题。3.2获取相应的ActionForm实体(数据缓冲区)引用13如果获取了HttpServletRequest当中所有的参数名字以及值,那么就可以把它们封装到一个具体的实体当中。简言之,这个实体就是一个普通的Java类实体。那么,这一步所遇到的问题就是如何获得这个实体的引用。因为这个实体的创建应该由程序员完成,所以实体的类型就是千差万别的。针对这种情况,应该把这些类做统一的管理,即把它们全部继承自一个Framework系统当中定义的基类。同时,由于Act
8、ion-Form只是纯粹的数据实体,业务处理方法没有存在的必要,所以ActionForm当中没有对方法进行扩展的必要。因此,规定所有的A
此文档下载收益归作者所有