Java Web(八) MVC和三层架构

      今天终于认识到本身的眇小,想起了一句话,不努力机会来了你也抓不住,不要一直想一步登天,一直沉浸在白日梦的美好之中,一步一个脚印,有多大能力作多大的事情,加油把。html

                        --WZY前端

1、设计模式 Model 1 和Model 2java

    Model 1web

      前面学习了Servlet和Jsp,对这两个有个大概的认识,Servlet就是为了解决静态页面的问题,可以实现动态的页面,使维护,开发更加的方便,可是也有缺点,在Servlet嵌入HTML代码实在是太麻烦了,每次都要out.println();输出。因此就有了Jsp,JSP中的内容就是html,为的就是方便写html,写页面,本质上JSP也是一个servlet,因此在它中也会不可避免的要写一些java代码,也就是脚本,为了避免让其那么混乱,就增长了标签,EL表达式来尽可能代替脚本。可是在写一些项目时,仍是会很麻烦,缘由是业务逻辑代码,与数据库交互的代码,HTML代码这些类别,风格,做用彻底不一样的都混杂在了一块儿,形成的结果是代码的维护性,可读性以及扩张性都很是差,好比要改一个需求,那么必需要把所有代码都看完,理解到,否则你可能会由于修改了一处代码,致使别的地方多处错误,这种设计模式也叫作 模式一(Model 1),应该是之前技术还没那么好时才这样写的。spring

    Model 2(MVC)数据库

      为了改进上面所说的缺点,也就是将业务逻辑代码放一块儿,显示页面的HTML代码放一块儿,与数据库交互的代码放一块儿,这样开发思路更加清晰,维护起来也更加方便,这种就叫作MVC模式,M:Model 模型,表明着业务逻辑代码与数据库代码,V:View 对数据的展现代码,好比JSP页面,就是专门用来展现数据,美化页面的  C:Controller  控制,Servlet来充当这一角色,链接着View和Model,从View中得到指令,在从model中经过业务逻辑代码获取须要的数据,而后在经过Servlet去交给View层去显示。也就是MVC三层结构的意义设计模式

      原本想本身画个图,可是奈何越画越复杂,就从网上找了一个我的以为比较不错的图来进行讲解浏览器

                  

        就这个图来分析一波,画的确实挺不错的,首先,咱们打开浏览器,输入网址,就是到服务器中请求页面(JSP也多是别的),而后显示到浏览器上,而后经过点击JSP页面上的内容,提交请求,到服务器中,也就到了Control(Servlet)这一块,Servlet经过分析请求,知道用户须要什么,须要数据,那么就经过Model,从数据库拿到数据,在将数据显示在JSP中,在将JSP发送回浏览器,显示在用户看,因此咱们常常说,JSP就是View层,给用户看的,Servlet做为控制流程,而编写操做数据库代码,业务逻辑代码就属于Model。这就是MVC的应用。服务器

 

2、经典三层架构前端工程师

      表示层(web层)、业务逻辑层(service层)、数据访问层(dao层),用一张图来描述这其中的关系

            

      由于如今只学习Servlet,Jsp,因此在表示层中就放的是Servlet和Jsp了,若是学了3大框架,Struts、Hibernate、Spring、会发现Struts是处理表示层的一个框架,而Hibernate是在dao层的一个框架,spring就是service层了。

              

 

3、总结

    一、经典三层架构和MVC的关系?

        他们是两个毫无相关的东西,经典三层架构是一种分层思想,将开发模式分为了这三层,每一个人根据本身的专长,开发不一样的模块,好比,前端工程师,那么就专研表示层便可,想办法如何让页面变的更好看,如何吸引别人,而有些专门作数据库工做的人,就能够只关注操做数据库的活,如何让查询更加快速有效,而没必要关注数据该如何显示这种问题。这就是分层带来的巨大好处。

         而MVC是一种设计模式,目的是让HTML代码和业务逻辑代码分开,让代码看起来更加清晰,便于开发。

         硬说他们有关系的话,只能说他们有共同的点,分层,解耦。

 

    二、实际项目中的包命名结构,其也是按照三层架构思想来进行编写代码的,

         脑壳里要保持着这种思想进行开发

          

          xxx:表明公司名称

          yyy:表明项目名称

 

      com.xxx.yyy.dao      dao层接口

      com.xxx.yyy.dao.impl    dao层实现

      com.xxx.yyy.service    service层接口

      com.xxx.yyy.service.impl  service层实现      

      com.xxx.yyy.web      web层

      com.xxx.yyy.util      工具包

      com.xxx.yyy.domain    javabean

 

    三、为了体现这个三层架构,会作一个小的用户管理系统。比较简单的,使用一下三层架构的思想。

        就一个简单的增删改查

         功能分析:

             注册、登陆、查询全部用户、查询详情、修改用户信息、删除用户

        技术分析:

             JSP(JSTL、EL)、Servlet、MySQL、javabean、三层架构思想

        具体详情就看下一章节,我会写出本身的总结。

相关文章
相关标签/搜索