收藏 分享(赏)

基于JSP ServletWeb应用框架设计与实现.doc

上传人:tkhy51908 文档编号:6193316 上传时间:2019-04-01 格式:DOC 页数:13 大小:176.50KB
下载 相关 举报
基于JSP ServletWeb应用框架设计与实现.doc_第1页
第1页 / 共13页
基于JSP ServletWeb应用框架设计与实现.doc_第2页
第2页 / 共13页
基于JSP ServletWeb应用框架设计与实现.doc_第3页
第3页 / 共13页
基于JSP ServletWeb应用框架设计与实现.doc_第4页
第4页 / 共13页
基于JSP ServletWeb应用框架设计与实现.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、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 来对软件开发提供支持,并且对程序员所书写的代码进行规范。一些公共的非逻辑的处理过程应该做成共通模块,一些不好的编成习惯应该得到限制和纠正。同时,与数据库打交道的数据 Model 也应

3、该得到妥善管理。另外,这些操作的共通特性都是高于模块级别但又属于代码级别的。所以,应该设计出一个类似于规约性质同时又是以实际代码形式出现的管理体制。于是,Framework 便诞生了。目前流行的 Framework 有很多,比如 Struts,印 ring,JS F 等等I。它们使 JSP 程序员从散兵游勇转化为了正规军。它们的共同点都是拥有自动化操作“前端”以及资源管理的“后端”.笔者参照 Struts 的前端自动化操作过程设计并且实现了一个 Framework 模型,希望借此深入了解一些 Framework 的内部实现机制。2. Framework 模型的设计原则最根本的原则是 Frame

4、work 要给开发过程带来便利,使得开发过程更加规范完善。为了实 现 这个根本原则,必须解决两个问题:(1)尽量将非业务逻辑自动化处理;2(2)将程序员的发挥空间进行限制。对于第一个问题,通过对比研究可以发现,前台视图层回传参数一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 当中各个参数的名字,进行数据缓冲的实体的引用,进行数据缓冲实体当中各个对应属性的名字,进行属性设置和读取的所有方法的名字。可以利用 Java 的RTTI 机制解决这个问题。3

7、3.2 获取相应的 ActionForm 实体(数据缓冲区)引用如果获取了 HttpServletRequest 当中所有的参数名字以及值,那么就可以把它们封装到一个具体的实体当中。简言之,这个实体就是一个普通的 Java 类实体。那么,这一步所遇到的问题就是如何获得这个实体的引用。因为这个实体的创建应该由程序员完成,所以实体的类型就是千差万别的。针对这种情况,应该把这些类做统一的管理,即把它们全部继承自一个 Framework 系统当中定义的基类。同时,由于 Action-Form 只是纯粹的数据实体,业务处理方法没有存在的必要,所以 ActionForm 当中没有对方法进行扩展的必要。因此

8、,规定所有的ActionForm 实体均继承自 Framework 当中指定的基类,这样就可以获取所有ActionForm 实体的引用了。3.3 获取相应的 Action 实体(业务实体)的引用创建了 ActionForm 实体之后,应该创建 Action 实体进行业务逻辑的处理。为了获取 Action 实体的引用,可以采用类似于获取 ActionForm 引用的处理方法。另外,Action 实体当中的业务处理方法也是千差万别,没有任何规律。为了保证这些业务方法都被系统调用,可以采用类似于 Servlet 类的处理方式 定义一个被 Framework 调用的方法,其余的业务方法均被此方法调用。

9、这个被Framework 调用的方法叫做 executeAction,并且这个方法应该在基类当中定义。Framework 在获取了 Action 的引用之后,立即调用这个方法,从而执行所需的业务操作。3.4 创建视图层使用的 PageBean 实体PageBean 应该是在 Action 实体当中创建的。它是属于视图层的。其实Action-Fom,也可以用作 PageBean,只是笔者认为一个独立的 PageBean 使得流程更为清晰 PageBean 只是一个 POJO 而已。3.5 返回到对应的视图层在 Action 当中进行完业务处理之后,返回一个新的视图层的 url 给Controle

10、r,以便 Controller 进行正确的:esponse 导向。43.6 小结综合分析可知,所需要知道和掌握的变量是:HttpServletRequest 当中的参数的名字,数据缓冲区中相应属性名字,数据缓冲区的引用,进行数据缓冲区操作的接口的名字,业务实体的引用。JAVA 的 RTTI 机制提供一些“盲操作”可供使用。另外,有些信息可以放置在外部的文件存储当中。这些存储信息的文件,可以称之为配置文件。具体的代码实现请参见下文。4 .Framework 模型的实现为了便于代码的演示,有些代码体实际上解决了上面所描述的两个问题。4.1 获取前台视图传回的参数以及设置数据缓冲区属性值前台回传的参

11、数会被读取到一个数据缓冲区当中进行缓存,从而可以利用 RTTI 机制进行获取一个实体类的数据属性的名字川。这里对编程的规范再次进行限制:对于进行属性设置的函数必须是 setter 形式的函数,否则将不会进行调用。这样,可以使用以下代码获取函数的入口。Method m=c.getMethods();Method methods=newMethodm.length;String propertiesName=newStringm.length;String args=newStringm.length;int count= 0;obj=c.newlnstance() ;bean=(Buffer)o

12、bj;for( int i =0;i m.length;i +)pro pertiesNamei =mi.tostring();if( propertiesNamei . index0f(“set“)!= -1)methods count =mi;argscount=propertiesNamei.substring(propertiesNamei.index0f(“set“)+popertiesNameil . index0f(“ (“ );count+;得到了属性设置函数,便可以获取对应的属性。接下来,就可以对缓冲区进行设置了。调用 Methoc 类当中的 invoke 方法可以对缓冲区进

13、行设置.4.2 获取数据缓冲区的引用及业务实体的代码实现在实际的应用中,数据缓冲区以及业务实体必须生成实际的对象实体,并5且有显式的应用。否则,无法找到该内存块。这些数据缓冲区和业务实体必须继承自指定的类。笔者一向认为继承的作用是便于管理而不是扩展功能扩展功能最好用复合。这里暂时称呼这些基类为 FrameActlonForm,和 FrameAction。这些基类当中可以指定一些基本的方法,当然也可以不指定.只要实际程序中使用的 ActionForm 和 Action 继承自上面的基类,那么它们就会被 Framework 调用管理。FrameAction 当中的 executeAction 方法

14、供Controlle:调用,同时它管理和调用其他的业务方法。4.3 关于配置文件的一些讨论我们似乎知道的只是 ActionForm 以及 Action 的名字,知道它们继承自特定的基类。那么问题就演化成为:如何根据一个名字来创建对应的实体。这样看来,似乎只要再次使用 Class.forName 函数,问题就解决了。 为了给程序足够的信息创建对象,Framework 使用配置文件。当然,为了读取这些配置信息,需要一个专门的类进行处理。这个类的作用就是专门负责读取配置信息。4.4 整合 Framework 模型既然进行框架的整合,那么有必要提及 BruceEckel 在他的巨作Thinking i

15、n Java当中提及的原则。那就是使用 inner class 对框架进行封装管理,也就是 Factory 设计模式。所有的 inner class 都应该继承自各自的外部基类,然后再在封装类当中进行定义体的实现。下面是 Controller 的代码演示:package controllers;import classes;public class FrarneController extends HttpServletstatic final long serialVersionUID=0;Frame Actionaction= nul;Frame ActionForm bean= null

16、;Frame Configurationconfig=null;Hashtable htbl= null;Public void doGet(HttpServletRequest request,HttpServletR esponsere sponse)throws IO Exception,ServletExceptiondoPost(request,response);Public void doPost(HttpServletRequest request,HttpServletResponse response)6Throws IOException,ServletException

17、String mappingName=null;String path=null;if( request. getParameter(“pathName) =null)mapping Name = “ /jsp/src.jsp “;getServletConfig() .getServletContext().getRequestDispatcher(mappingName).forward(request,re sponse);else config = new FrameConfiguration();try / Get the configuartion in formationf ro

18、m the XML filecatch(Exception e ) e.printStackTrace( );System . exit( ) ; bean = getActionFormBean(request);action = getAction ();mappingName = action.executeAction(request,response,bean);getScrvletConfig().getServletContext().getRequestDispatcher(mappingName).forward(request,re sponse);Private Fram

19、eActlonForm getActionFormBean(HttpServletRequestrequest)Objec tobi = null;FrameAction Fonn bean=null;Class c = Class .forName(htbl.get(“ac tionFormType“).tostriniq();return bean private FrameAction getAction()FrameAction action= nullClass c=null;c=Class.forName(htbl.ge t(“actionType“).toString();7.r

20、eturn action从代码当中可以看出,Controlle:根据视图层回传的索引信息读取了配置,并且生成了对应的 Action-Form 和 Action 实体。对业务实体的业务过程也进行了启动。基本上,所有后台所需要的流程都进行了整合。需要注意的是,这里的编码采用的是“硬编码” ,没有将设计与实现进行隔离。所以这样的代码最多只能存在于演示模型中。实际上,至少也得采用一下 Factory 设计模式来对 Framework 进行封装。另外,为了进行规整的操作,根据这个模型的特性,需要一个“hag 设定表单提交的 url 以及后台所需要的索引信息到现在止,设计出的框架模型组件包括 Contro

21、ller,ActionForrn, Action, Configuration(负责读取 XML 配置信息),XML 配置文件。将前面四个类打包成 jar 文件,引人到所开发的项目当中即可。5.JSP 与 servlet 相结合的方法JSP 网站开发技术标准给出了两种使用 JSP 的方式。这些方式都可以归纳为模式一和模式二。这两种结构在 JSP 技术一开始应用时,就占有了绝对的统治地位。在当今的开发中,我们比较偏向于使用模式二,但是模式一对小型的开发比较占有优势。 模式一:JSP+JavaBean 在模式一中,JSP 页面独自响应请求并处理结果返回客户。所有的数据通过 Bean 处理,JSP

22、实现页面的表现。模式一技术也实现了页面的表现和页面的商业逻辑相分离。 在最新引入 JSP 技术的时候。模式一占有统治地位。 在用 JSP 处理显示和业务逻辑时,使用模式一比较简单。JSP 页面独自响应请求并经处理后吧结果返回客户端。所有的数据通过 JavaBean 来处理,JS实现页面的显示,通过使用模式一,可以实现页面的显示和页面的内容(逻辑)分离 但是大量使用此模式可能带来一个副作用,那就是会导致在页面里面嵌入大量的 Java 控制代码。当要处理的业务逻辑复杂时,这种情况变得非常糟糕。 大量的内嵌代码使得页面变得庞大,同时也非常复杂。当页面的功能实现后交给美工或者页面内容设计人员进行包装时

23、,问题就变得严重了。所以大型8的项目里,这种方法将会导致页面的维护困难。 模式二: JSP+Servlet+JavaBean 模式二,就是指 JSP+Servlet+JavaBean 技术。在模式二中,结合了 JSP和 Servlet 技术,模式二充分利用了 JSP 和 Servlet 两种技术原有的优点。 此模式遵循视图控制器(MVC)模式。它的主要思想是使用一个或者多个Servlet 作为控制器。请求由前沿的 Servlet(可能是多个 Servlet 构成的一个处理链)接收并处理后,会重新定向到 JSP。在 Servlet 作为控制器时,每个Servlet 通常只实现很少一部分功能,多个

24、 Servlet 控制器就可以结合起来完成复杂的任务。这样的好处是 Servlet 的重要性,一个副作用就是可能会导致请求响应的时间加长。在此模式里,JavaBean 作为模型的角色,它充当 JSP 和Servlet 通信的中间工具。Servlet 处理完后设置 Bean 的属性,JSP 读取此Bean 的属性,然后进行显示。 在实际的项目开发过程中,页面设计者可以方便地使用普通的 HTML 工具开发 JSP 页面,Servlet 却更适合于后端开发者使用。开发 Servlets 需要的工具是 Java 集成开发环境。 此模式更加明显地把显示和逻辑分离,使得代码比模式一的容易管理,适合大型项目

25、的开发 6.两种模式的比较 从开发的观点看,模式二具有更清晰的页面表现、清楚的开发者角色划分,可以充分地利用开发小组中的界面设计人员。这些优势在大型项目开发中表现得尤为突出。使用这一模式,可以充分发挥每个开发者各自的特长;界面设计开发人员可以充分发挥自己的设计才能,来体现页面的表现形式;程序编写人员则可以充分发挥自己的商务处理逻辑思维,来实现项目中的业务处理。 在目前的大型项目中,模式二更多地被采用。 7.JSP 和 Servlet 的选择 我们知道,所有的 JSP 都必须编译成 Servlet,并且在 Servlet 容器中执行。从技术角度来看,JSP 和 Servlet 是一样的。 但 J

26、SP 有很多关键因素胜过 Servlet 1. JSP 以显示为中心,它为 Web 显示开发人员提供了更加方便的开发模式 2. JSP 可以把显示和内容分离,实现的方法就是借助 JavaBean、Taglib,这样项目的显示和业务逻辑开发可以同时进行。 3. JSP 可以帮助组织 Web 应用的物理状况。 4. JSP 由容器自动编译。 9Servlet 曾经得到广泛的应用,但随着 J2EE 平台的不断完善,它的应用规模也在不断降低。因为随着 J2EE 的出现,Servlet 的业务处理能力不如 EJB,它的页面表示能力不如 JSP 方便。但是这不等于说 Servlet 已经没有什么用处了,在

27、如今的 J2EE 应用开发中,它仍然大量用来处理小型的任务,或者用来作为 MVC 视图模式中的控制器。具体地讲,它主要负责那些容器管理的任务组。 1. 协调输出,但几乎不直接参与生成动态 Web 页面内容。 2. 收集和验证用户输入,但几乎不进行实际处理。 3. 处理及其简单的业务逻辑 4. 处理 JSP 不好处理的后台服务或者其他有特殊要求的问题。 在构建 Web 站点时,如果 Web 功能不是非常稳定,那么使用 Servlet 就不是头等的选择。因为 Servlet 比 JSP 更难于维护,它需要编译类,而修改 JSP时只要修改它的源文件,容器会自动对发生改变的 JSP 进行重新编译,故使

28、用Servlet 会使维护变的困难,即使是一个很小的改动,Web 页面设计人员可能也不能胜任。相反,当 JSP 开发完成后,如果只是对页面的内容做很少的改动,那么可能不需要 JSP 程序员参与也能完成。 在特定的软件系统环境中,选择使用 Servlet 还是 JSP 通常不是绝对的。最常见的情况是把两者结合起来使用,比如可以把 Servlet 作为视图控制器,让它处理请求;当 Servlet 处理完请求后,就把处理的结果转发给 JSP,JSP 处理显示的问题。8 .Frame work 模型的应用与验证由于篇幅的限制,实际验证的过程就不再叙述了。验证的结果是:前台采用指定的标签,后台程序当中创

29、建继承自 ActionForm 和 Action 的类以及进行了正确的配置之后,程序正常运行。在建立这 Framework 模型的过程中,已经从理论上证明了这个模型的正确性了,虽然这个模型没有实际应用价值。9如何选择 Web 开发框架 开发框架的选择,始终是个仁者见仁、智者见智的事情。尤其是 Web 层的开发框架,数量非常多,而且各有特色,如:Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage3.0。下面先来看看为什么要使用 Web 开发框架 一:使用框架的必然性 框架,即 framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西

30、抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序框架。 10软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。这样每次开发就不用白手起家,而是可以在这个基础上开始搭建。 使用框架的最大好处:减少重复开发工作量、缩短开发时间、降低开发成本。同时还有其它的好处,如:使程序设计更合理、程序运行更稳定等。基于这些原因,基本上现在在开发中,都会选用某些合适的开发框架,来帮助快速高效的开发应用系统。 了解了使用框架的必然性,下面来看看如何选择,当然我们的话题集中

31、在Web 层的开发框架。在谈这个问题之前,先来看看我们在 Web 开发中究竟需要做些什么工作: 二:Web 层开发的工作 在 J2EE 开发中,分层是基本的思想,3 层架构或者多层架构早已深入人心,在这里我们就把目光集中到 Web 层,看看到底 Web 层开发做了那些工作: 1.数据展示 Web 层需要从逻辑层获取需要展示的数据,然后以合理的方式在页面进行展示。 2.人机交互 用户需要从界面上输入数据,在界面上进行按钮点击,进而触发事件,标准的事件驱动模型,然后跟后台进行数据交换,出现新的界面。 3.收集数据,调用逻辑层接口 Web 层收到用户的事件请求,需要调用相应的逻辑层接口来进行处理,W

32、eb层是不会有任何逻辑处理的。调用逻辑层接口,需要传递参数,这时需要收集用户在界面上输入的数据,然后进行组织,组织成为逻辑层接口需要的数据封装形式(通常都是 ValueObject) 。 4.根据逻辑层的数据来重新展示页面 逻辑层处理完了,需要返回数据或信息到界面上。这个时候 Web 层需要根据返回的值选择合适的页面,然后展示这些数据或者信息。 从上面可以看出,Web 层开发的主要工作集中在展示上,也就是图形用户界面。这一部分是用户直观感受应用程序的窗口,也是用户要求最多的地方,其表现形式也是最丰富的。 三:Web 层开发的步骤 下面再来总结一下 Web 层开发的大致步骤(也就是需要开发人员做

33、的工作)11: 注意:这里讨论的 Web 层开发,是不使用任何开发框架时候的开发。 1.写页面 Html,到底有哪些数据需要在界面上表现 2.每个数据的具体表现形式,如:有的需要表现成为下拉列表,有的需要表现成为单选按钮等。 3.界面表现形式的逻辑布局,所谓逻辑布局是指某些数据的表现形式应该放在前面,某些应该放在后面;某些放在上面,某些放在下面。如:某个请假申请的业务,有请假开始时间和结束时间,很明显开始时间的表现就应该排在结束时间的前面。而美工是负责最后页面的美观,一般美工不能动界面的逻辑布局。 4.完成前面 3 步,页面的表现形式的大致模样就有了,下面需要来做功能性的开发。第一个就是这些表

34、现形式的值的来源,如:下拉列表显示的值从什么地方来。值的来源方式很多,有数据库中来、固定值、某断程序运行的中间结果、前面页面传递过来等等,当然典型的还是来自数据库。 好了,确定了值的来源,开发人员就要写代码来获取这些值,然后把这些值赋值到对应的表现形式里面。 5.还有一些比较特殊,也就是真实操作的是一类值,但是在界面上显示的是另一类值,比如:数据库中有用户编号,到了界面上就得显示用户姓名,但是所有的操作都是要操作用户编号的。我们把这种情况分做:真实值和表现值,他们有一定的内在联系。这些都是要开发人员去转化和维护的。 6.接下来就应该开发功能性的事件响应了。用户点击了某个按钮或者触发了某个事件,

35、首先是客户端:数据检测、客户端事件处理;然后提交到服务端,服务端要获取到客户端提交的数据,然后调用相应的逻辑层接口来响应。当然如何写逻辑层的实现这里就不去谈论了。 7.逻辑层执行完过后,返回数据和信息到 Web 层,开发人员还需要写代码去处理,选择哪个页面来显示,如何显示这些数据和信息等。 8.在整个交互的过程中,还必须考虑到如何控制权限,如:某些数据不能显示,某些数据不能编辑等等;同样还需要考虑到消息的配置和国际化等等。这些功能起源于逻辑层,但是实际的控制要到 Web 层,这些都需要开发人员来控制。 9.完成了上面的开发步骤,页面基本的功能开发就告一段落,接下来开发人员需要考虑页面美观的问题

36、了。大家可能会说:“不是有美工吗,还需要开发人员干什么?” 。事实上美工多半只能出一个静态页面的美化模版,美工对于12一推 Java 代码和 Html 的混杂物,多半是没有办法的,更不要说还有一些内容是动态生成的,美工就更不可能搞定了。还是得开发人员上阵,按照美工给的模版,开始添加 Css:class、id、style 10.完成上面的开发,基本页面的开发工作就完成了,最后的一个步骤就是把各个页面有机的组织起来,开发应用程序的整体应用导航框架,通常就是菜单,然后把各个功能页面跟菜单结合起来,形成一个完整的应用。 在这里我们省略了开发期反复的调试过程,仅总结开发的步骤。 四:选择 Web 开发框

37、架的目的 了解了如果没有框架,我们需要做的工作,这对选择框架有非常大的帮助。框架,直白点说,就是一个半成品,能够帮我们做一些事情的半成品。框架的选择,就是看哪个框架最合适,从而减少开发的工作量,提高开发的效率和质量,并有效减少维护的工作量,最终达到节约综合开发成本,获取更多的收益。五:选择 Web 开发框架的标准 声明:这里所谈的选择 Web 开发框架的标准,只是我们的总结和一家之言,并不是放之四海而皆准的真理,请根据您的体会客观的看待我们的总结。另外:我们这里更多的讨论业务功能性应用程序的 Web 开发框架。 1.选择能够对我们的开发过程提供更多、更好帮助的 Web 开发框架 2.Web 开

38、发框架的学习一定要简单,上手一定要快,没有什么比使用能得到更深的体会。那些动不动就需要半个月或者一个月学习周期的框架,实在是有些恐怖。 3.一定要能得到很好的技术支持,在应用的过程中,或多或少都会出现这样或者那样的问题,如果不能很快很好的解决,会对整个项目开发带来影响。一定要考虑综合成本,其实这是目前应用开源软件最大的问题,碰到问题除了死肯文档就是查阅源代码,或者是网上搜寻解决的办法,通常一个问题就会导致 1-2 天的开发停顿,严重的甚至需要一个星期或者更长,一个项目有上这么几次,项目整体的开发成本嗖嗖的就上去了。 4.Web 开发框架结合其他技术的能力一定要强,比如:在逻辑层要使用Sprin

39、g 或者 Ejb3,那么 Web 开发框架一定要能很容易,很方便的与它们进行结合。 5.Web 开发框架的扩展能力一定要强。在好的框架都有力所不及的地方,这就要求能很容易的扩展 Web 开发框架的功能,以满足新的业务需要。同时要注意扩展的简单性,如果扩展框架的功能代价非常大,还不如不用呢。 136.Web 开发框架最好能提供可视化的开发和配置,可视化开发对开发效率的提高,已经得到业界公认。 7.Web 开发框架的设计结构一定要合理,应用程序会基于这个框架,框架设计的不合理会大大影响到整个应用的可扩展性。 8.Web 开发框架一定要是运行稳定的,运行效率高的。框架的稳定性和运行效率直接影响到整个

40、系统的稳定性和效率。 9.Web 开发框架一定要能很好的结合目前公司的积累。在多年的开发中已有了很多积累,不能因为使用 Web 开发框架就不能再使用了,那未免有些得不偿失。 10.选择开发框架另外要注意的一点就是:任何开发框架都不可能是十全十美的,也不可能是适应所有的应用场景的,也就是说任何开发框架都有它适用的范围。所以选择的时候要注意判断应用的场景和开发框架的适用性。9 .结束语Web 程序的开发几乎已经离不开 Framework 了。但是 Framework 到底是怎么工作的?笔者在运用一些 Framework 开发项目的基础之上,模仿 Framework 的动作,采用最基本的.lava

41、语言工具和设计方式构造了一个模型。由此剖析了一些 Framework 的“内幕” ,加深了对 Framework 的理解。文中设计的框架可以进一步完善以应用于实际的 Web 应用程序开发也可作为设计其他 Web 框架的参考。参考文献:1 Husted T .实战 StrutsM.北京:机械工业出版社,2005.2 Cavaness C B .JAKARTASTRUTS 编程M,北京:清华大学出版社 ,2004.3 孙卫琴,JAVA 面向对象编程M.北京:电子工业出版社,2006 .4印吴.JAVA 语言与面向对象程序设计M.北京:清华大学 出版社,2000.5 Fckcl B .Thinkingi nJ avaM .北京:机械工业出版社,1999 .6孙卫琴.基于 MVC 的 JAVAWeb 设计与开发M . 北京:电子工业出版社,2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报