浏览器向服务端发送一个http请求,服务端要有对应的程序处理它,最原始的处理请求的程序就是Servlet,在Servlet中完成数据的处理,然后在将对应的html代码以字符串的形式用流对象返回给客户端浏览器。如下图所示:
这是一个最原始的web应用的大致工作流程。
这样虽然也能够完成Boss交给的任务,但是,做程序员本来就很苦逼,如果再让程序员再在Java代码中一行一行的拼接复杂的html标记,那还是一脚把他踹下楼吧,免得在这个人世间痛苦。
上面的模式必须改变,因为这种开发模式与程序员是你死我活的关系,但是程序员必须活着,所以它必须死。
那么,砖家们经过激烈的,深入的讨论,最终达成一致共识:应用MVC设计模式对原有的web开发模式进行优化。
MVC:Model,View,Controllor
MVC解决的最大的问题就是吧java代码和html代码分离,可以说着是程序员的一个春天。
如下图所示:
上面说了MVC解决的最大的问题就是将html代码与处理数据的java代码分离,提高开发效率。是的,实际上如果你是一个有经验的开发人员,那么你会知道,jsp实际上也是一个Servlet,只不过这个servlet的主要工作部是处理数据,而是把数据转换成相应的html返回给客户端。
但是这样一来,有出现了一个问题,由于处理数据的Servlet和用原始Servlet中提取出来的用意显示页面的Servlet的两个Servlet,通常情况下,数据被处理后,要将处理后的数据返回到客户端,在最原始的web开发模式中,这些都是在同一个Servlet中完成的,数据随时可以拿来用,但是现在不可以了,为了解决在两个Servlet之间方便的传递复杂数据结构,砖家们又发明了一个新玩意:Model。就是JavaBean,Servlet和jsp之间通过容器的request对象来相互传递JavaBean,从而取得JavaBean中的数据。
MVC模式开发更高效,结构更清晰,最重要是:责任划分更明确。