J2EE WEB应用架构发展分析

J2EE体系使用多层的分布式应用模型,按功能划分为组件。在Web项目中,把这些不同功能的组件合理组合,从而形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。Web项目的架构从成型到基本稳定也经历了几个版本的发展。

      

一、  直接基于JSP的开发结构

        JSP是J2EE中很重要的一部分,JSP功能强大,既可以作为页面来浏览,也可以处理业务;基于传统的网页HTML文件,却又兼容java代码;既可以用于开发小型的Web站点、也可以用于开发大型的、企业级的应用程序;Web项目一般少不了它。

       对于小型的不易变动的WEB项目,可以只使用JSP来构建,这样的项目,一般功能比较单一、简单,且需求不常变动。就可以把所有动态和静态显示部分和业务处理(嵌入java代码或JavaScript控制)都放到JSP中。

       简易结构图:

                  

       优缺点:

       这种方案的好处就是编程简单,成本低,容易个人控制,但是当项目需求有变,或者项目扩大后,就需要整体性变动,而且界面大量的Java代码使美工不容易维护,其次,在JSP的业务逻辑也不适合多个客户同时访问,尤其是连接数据库的行为。

       所以这种方案只能应用在小型网站,且开发人员较少的时候。

 

二、  JSP+JavaBeans 或者JSP+Servlet ,也就是常说的Model1两层开发结构

        因为第一种JSP的结构只能满足较小网站,范围面较小,所以在JSP结构上进行发展,对JSP中的显示和业务做了分离。

        结构图:

       

     (1)JSP+JavaBean形式:在设计时JSP只负责显示页面,即JSP调用JavaBean传过来的数据然后显示,而JavaBean负责收集JSP需要的数据。

 

     (2)JSP+Servlet形式:在设计时JSP只负责显示页面,即JSP调用Servlet传过来的数据然后显示,而Servlet负责收集JSP需要的数据并将处理后的结果返回给某一个JSP页面。

       调用流程:

      

       这种结构,没有将所有的东西全部交给JSP页面来处理。而是利用了JavaBeans和Servlet来处理一些常用的功能,例如可以将连接数据库写成一个Java Bean,它可以被多个JSP多次调用,将很容易完成一些完整的业务逻辑。

       在这种开发方式中,一个网站可以有一个或几个核心的Servlet来处理网站的逻辑,通过调用JSP页面来完成客户端(通常是Web浏览器)的请求。

       此处的JavaBeans和Servlet的主要目的是帮助JSP跟后台数据库打交道。起到的是中间层的作用,它使得前台JSP不涉及数据库具体处理问题。达到解耦的目的。

       优缺点:

       架构比较简单,适合中小型项目开发。但是,Model1虽然将数据库持久层部分分了出去,但是界面和业务逻辑仍然都在Jsp里,这样使得Jsp的职责过重,不单一。不利于业务修改,不便维护。

 

三、  JSP + JavaBeans + Servlet的MVC的三层开发结构( Model 2)

        网站的逻辑关系和网站的显示页面互相混杂,是网站发展中非常棘手的问题,并长期存在,常常可以看见一些Java的逻辑代码和HTML代码掺差交错,尤其动静态页面并存的时候,这样的代码很难阅读,且不容易维护,所以Model2应运而生了。

        Model2其实就是MVC的应用。

        MVC(模型-视图-控制器)的三层开发结构能有效地分离逻辑开发,使开发人员能专注于各自的开发中。同时也能使整个开发结构流程更清晰,但是需要比较高的开发配合度。
  
        视图(View):视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
        控制器(controller):控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态
        模型(Model):模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。

        结构图:

       

        在Model2结构中,Servlet担负起决定整个网站逻辑流程的任务。在逻辑关系比较复杂的网站中,借助Servlet(Control 控制层,完成业务逻辑)和JSP(View 显示层,即前台界面)良好的交互关系和JavaBeans(Model ,实现操作和处理数据)的协助,完全可以将网站的整个逻辑结构放在Servlet中,而将动态页面的输出放在JSP页面中来完成。

         调用流程:

        

        优缺点:

        Model2在Model1的基础上对混合在一起的界面和业务逻辑进行了分离。三个部分分工明确,Jsp只是显示数据,Servlet处理业务逻辑,JavaBeans完成具体数据库操作。职责清楚,比较适合大型项目架构。

        这样的分层使项目更容易管理,能更好的适应需求的变化,需求的改变对系统的影响较小,且可以根据任务进行更好的人员分工。

        当然,这样的架构相对前两个来说就比较复杂,不适合小型项目的开发(因为简单,所以没有必要)。

 

        可能有人觉得Model2仍不够好用,于是 Struts又应运而生了,这个Struts下次再介绍。。。

 

        从上面的三个架构模式可以看出,架构的设计没有绝对的好与坏,只有合适不合适。根据需求,项目大小,人员多少等确定一个合适的架构模式才是最好。

猜你喜欢

转载自blog.csdn.net/u013430672/article/details/50422256