• JAVAEE企业级应用开发浅谈第一辑


    不积跬步无以至千里,不积小流无以成江海

    Step1.情景概要

           作为一个JAVA WEB 开发人员,在开发web 项目时项目大家都有自己的一些新的体会,对于web 开发出现的一些比较经典的名词大家都会有所了解,今天我们就来聊聊JAVA WEB 开发中的三层架构与MVC。

    Step2.编程思维的转变

            回想个人在JAVA WEB学习阶段,MVC思想没有建立之前,个人在实现网站用户登录功能的痛苦经历时,还是颇有感想,当时的实现方式现在想来不得不佩服当时的这种勇气,将登录的数据访问层代码,登录业务逻辑处理的代码以及登录参数获取视图转发控制的代码全部柔和到了一个Servlet 中进行处理,当然功能实现上是没有任何问题的,能够实现用户登录的功能,这个流程画图描述下来如下:
       

     
            仔细思考整个登录过程代码实现,发现整个登录servlet 代码虽说实现了登录功能,但是代码处理上是显得相当臃肿,并且耦合度较大,servlet 中包含了参数接收,校验,jdbc 操作,用户存在性与密码匹配校验以及视图转发控制,这就相当于把servlet 变为了一个超级战士,所向披靡,无所不能,确实厉害不少!

            但是从开发的角度来说这种编码方式对于后续开发弊端也显得相当明显,比如后续想要加入登录时用户积分的计算(连续登录三天,五天等情况积分业务添加),查询数据时添加缓存处理等等其他新的业务,此时则不得不打开登录servlet代码,定位到指定代码块添加新的代码,然后测试,再发布,这样下来虽说功能能够实现,但代码的臃肿程度将变得越来越大,同时业务处理的代码变得越来越复杂,更加不便于后续代码维护,这种维护的工作量将是巨大的。

            接下来继续分析这个道理过程,仔细考虑当前登录代码,将登录代码拆分来看的话,分析如下:
     

       
    通过上图可以看出 现在的代码结构就可以参照这个思路来拆分三块:
      Web 端:获取请求参数;
      Service 端:处理具体业务;
      Jdbc 端:使用jdbc 来实现数据库访问操作

    Step3.三层思想建立分析

    如此,登录代码结构分析图可调整为下图:


     
            通过上图可以看到:图例看似复杂,实际上已经将登录servlet 原始代码解耦出来,原来的代理servlet 不再是大而全的超能战士,而是将其职责进行了分离,原有的登录逻辑与jdbc 访问数据库操作代码进行职责分离,实现了代码功能解耦,同时方便了后续的代码维护操作,此时的代码变得相对清晰起来,体现了面向对象中高内聚,低耦合的思想,那这样的一种代码书写方式在java 世界有一个专有名词-三层架构,简图如下:
     


    通过以上分析可以看出:
       处理登录的过程 通过三层架构思想来进行代码编写,思路就很清晰明了啦

    1. 界面层(View)  即登录表单页面jsp
    2. 业务逻辑处理

          登录servlet
               2.1 接收登录参数
               2.2 调用service 处理层相关处理方法并接收处理结果
               2.3 控制登录结果视图转发
            Service 
               用户名、密码参数校验
               用户记录查询 并校验用户记录存在
               密码加密匹配
               返回登录结果模型数据

    1. 数据访问层

          Dao 层
               借助jdbc 实现数据访问操作
    写到这里,想必大家对三层架构的理解应该很明确了,那么它与MVC 思想到底有什么关联呢,后续将会为大家继续呈上,敬请关注上海尚学堂java

  • 相关阅读:
    《快速开发》通过Maven创建WebService项目Hello World!
    《常见问题集》Eclipse
    《常见问题集》Maven
    Eclipse + Jersey 发布RESTful WebService(一)了解Maven和Jersey,创建一个WS项目(成功!)
    Java2WSDL 和 WSDL2Java(Axis)
    Eclipse + Apache Axis2 发布RESTful WebService(一)基础知识
    Eclipse + Apache Axis2 发布SOAP WebService(三)第一个程序Hello Axis2 SOAP!
    Eclipse + Apache Axis2 发布RESTful WebService(三)第一个程序Hello Axis2 !(未成功)
    Eclipse + Apache Axis2 发布RESTful WebService(二)配置开发环境
    学习 JSP:第三步 JSP基础(未完)
  • 原文地址:https://www.cnblogs.com/shsxt/p/7642100.html
Copyright © 2020-2023  润新知