https://blog.csdn.net/ITBigGod/article/details/86515893

鉴于最近一些零基础的朋友要做项目,我梳理一下web项目的运行流程,主要是说一下理解思路,有什么不足或不对的,多多理解。

在N久前,传统的项目有用jsp+JavaBeans开发的,有用JSP+Servlet开发的,还有的是符合mvc的JSP+Servlet+JavaBeans开发的。这些说法都没有错。
前面两个年代久远,不说了,主要重点说一下,MVC模式。

1.JSP+JavaBean模式:

在现在的开发中, JSP+JavaBean模式开发非常之少了,除非你的项目只有芝麻大一点
它可以说web开发中的是第一代设计模式,主要是JSP充当视图和控制器,而JavaBeans充当模型。

特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。
缺点:页面将控制与显示集于一身。
结论:简单,适合小型项目的快速构建与运行。

2.JSP+Servlet模式:

后来慢慢发展,有人使用jsp+servlet模式来开发。
其中就分为:(可能层的定义不这么叫,我忘了具体的。)

  1. view层——类比jsp前台交互,比如我们页面显示等,但是jsp中也写了数据交互的东西。JSTL等
  2. web层——类比servlet,它与前台数据进行交互,又和数据库打交道,其次它也动态输出html内。

简单的例子

servlet层中有a方法,实现和数据库交互,jsp将注册信息提交给servlet,在servlet里调用a方法,来接收sp的数据,然后将数据就和数据库关联。

值得一提的是:Servlet和JSP的一大共同点:

Servlet和jsp都可以操作网页:

• Servlet可以在.java文件中通过HttpServletResponse对象动态输出HTML内容,比如out.print()。
• JSP在静态HTML/JSP中可以嵌入Java代码,常见JSTL标签<%%>,Java代码被动态执行后生成新的HTML内容。

也就是说,单单只用jsp或者serlvet都可以对网页进行开发,也正是这样,导致两者它们都有难以维护和杂乱代码的困扰。

所以!扬长避短——MVC(Model-View-Controller)模式非常适合解决这一问题。

3.mvc模式:JSP + Servlet + JavaBean三层架构

MVC模式(Model-View-Controller),是系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller):
可以理解为:JSP充当视图,Servlet充当控制器,JavaBeans充当模型。

  • 1.View层(JSP),前台交互,比如我们注册时的数据等等,serlvet就是与前台数据进行交互的
  • 2.Contrller层(servlet充当):Model与View之间沟通的桥梁, 这个层有业务处理,用户的注册登录就可以看做是User的业务,我们就需要将相关的处理代码写到这个层中。
  • 3.Model层:实现系统的业务逻辑,即javaBean,常见的就是封装对象的属性、数据库连接操作等。
  • 常规会写一个dao层,是属于mvc里面Model层抽出来。目的就是更单纯的和数据库打交道,将servlet的数据和数据库进行交互。

特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式
缺点:没有统一的开发框架导致开发周期长

图示:

在这里插入图片描述

在MVC开发的软件系统中,描述如下所示:
在这里插入图片描述

通俗的说,就是web broswer通过view层的jsp页面发出的所有的http请求都应该交给servlet,即控制层来。servlet通过对Javabean,即核心的Model层处理,得到处理结果,然后返回给view层的Jsp页面。Jsp页面返回给浏览器最后的html网页。
  • 1

简单的例子:

比如用户的注册业务——addUser()
前台取得注册信息--封装到user对象中,然后调用user的业务,即注册功能控制。
这时就跳到Contrller层,然后此层调用dao中的方法将数据存入数据库。
  • 1
  • 2
  • 3

在实际应用中可以这样理解:
.JSP,.html属于视图层,
servlet属于控制器层,
Class类文件属于javabeans。

(上层的依赖下层的,servlet是用JAVA写的控制器层。)

对应项目的图示:
在这里插入图片描述
这种最经典的mvc模式了。

总结:MVC大体上是jsp+Javabean+Servlet,MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不会通过out.append()动态生成HTML代码;JSP中也不会充斥着大量的业务代码,这大大提高了代码的可读性和可维护性。

Posted on 2020-08-01 14:11  旅途  阅读(1159)  评论(0编辑  收藏  举报