1、Web应用运行流程:
(1)浏览器发送请求到收到响应,简要的过程如下:
浏览器发送请求后,由Web.xml中规定的协议,进入TomCat中特定的Servlet,服务器先到Web-Content中找有没有对应的html/jsp页面,如果没有再到WEB-INF目录下的xml配置文件中找映射,通过映射找到响应文件html/jsp,响应给浏览器。
(2)浏览器再点击JSP页面后,再次发送请求。
2、什么是MVC?
MVC,全称Model View Controller,即模型-视图-控制器;
(1)Model(模型):
是Web应用中用于处理数据逻辑的部分,包括Service层和Dao层;
Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,
Dao层用于放各种接口,以备调用;
(2)View(视图):
是Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图;
通常视图是依据模型数据来创建的;
(3)Controller(控制器):
在Web应用中,简而言之,就是Servlet,或者SpringMVC框架中加了注解@Controller的方法(实际上一个方法就相当于一个对应的Servlet);
Web开发过程中的MVC设计模式:
首先,浏览器发送请求,JSP页面响应给客户,客户点击JSP页面上的内容,再次提交请求;
这一次,请求到Controller控制器模块,也就是Servlet服务器中,Servlet服务器通过分析请求,判断客户的需求,然后调用Model模型,用Service层处理数据库的增删改查,用Dao层提供接口支持,然后Servlet将数据驱动到View视图层也就是JSP页面中,将JSP页面响应给浏览器,客户看到动态的内容。
在这个过程中,最典型的的MVC模型就是 JavaBean + JSP + Servlet的模式,各司其职,分工合作;这种设计理念可以把html代码块和业务逻辑代码块分开,让代码更清晰,便于开发。
3、JavaWeb经典三层框架
(1) 表现层,UI,User Interface:
主要接受用户的请求和把相应的页面响应给用户浏览器;
其中aspx页面,对应MVC中的视图(View),即JSP页面;
而aspx.cs页面,对应MVC中的控制器(Controller),即Servlet服务器;
(2) 业务逻辑层,BLL,Business Logic Layer:
对应MVC中模型(Model)中的Service层,与数据库联动处理增删改查;
(3) 数据访问层/持久层,DAL,Data Access Layer:
对应MVC中模型(Model)中的Dao层,提供接口支持;
4、MVC设计模式的具体开发流程
(1)创建项目
创建Dynamic Web Project,并完成初始化配置,能正常启动。
(2)JDBC
将JDBC数据库驱动导入或者引入(Maven)项目。
(3)DBUtil
在项目中创建数据库连接类,这是Java程序和数据库直接通信的唯一方式。我们可以将该程序理解为数据库系统的自定义客户端。
(4)Model
构建Model类,注意映射关系。
(5)DAO和IMPL
定义DAO,并实现IMPL。
(6)Biz
定义Biz,并实现IMPL。
(7)Controller
构建Controller类,受理业务请求。
(8)View
构建View,接受用户的输入,并且能显示Controller返回的响应数据。
5、 MVC的优缺点
(1)优点:分层,结构清晰,耦合性低
大型项目代码的复用性得到极大的提高,开发人员分工明确,提高了开发的效率
维护方便,降低了维护成本。
(2)缺点:简单的小型项目,使用MVC设计反而会降低开发效率
层和层虽然相互分离,但是之间关联性太强,没有做到独立的重用。