MVC理解,通俗易懂

  1. MVC框架整体概述:
    M(model)指模型端,也就是DAO类和数据库:DAO类中写了三个表不一样种类的“增删改查”的方法,而且与数据库和控制端servlet直接相连;V(view)是指视图端,视图端直接与客户端相连。视图端有两种,一种为HTML,主要是用于为用户提供请求输入,另外一种是JSP,这种是动态的HTML,主要是用于根据客户的请求将从数据库返回的信息实现可视化;C(control)指控制端,即servlet,这也是MVC框架的核心技术,整体上即能接受来自用户的请求,又能根据用户的请求经过调用DAO类的方法从数据库得到须要的信息返回JSP,能够说是链接M与V之间的桥梁,相当重要。
  2. MVC框架之M
    M主要包括DAO类和数据库,但还有DTO传输类,这个地方主要针对数据库设计提出长远的要求,数据库设计很差,或者考虑不全面,直接影响到后期功能的实现多少以及难易程度等:好比说与自增有关的功能,后期有些功能在现实中仅须要名字就能够查了,而咱们的表中将学号和姓名共同设置成主键,容许了同名不一样学号,这就为违背了现实中须要实现的功能的要求,所以在后期,经过利用学号结合DTO类返回了一个封装了惟一学号的全部实体信息的DTO类供servlet对须要的信息进行提取处理;DAO类里面中写了三个表不一样种类的“增删改查”的方法,经过封装了JDBC操做的工具类实现与数据库的链接。
  3. MVC框架之V
    对于V,主要讲JSP,之前学的HTML页面是静态的,是死的,一次编写不会在改变,除非重写,而JSP不一样,JSP因servlet而活,若是说JSP和HTML躯体,servlet就是灵魂,有了灵魂的躯体才是活的了,这就是为何说JSP是活的HTML,同时也代表了JSP也能实现HTML的功能。JSP的“活”主要是由于它能根据servlet的变化而变化,那么它们是经过什么实现的呢?毋庸置疑,java代码,的确,JSP可以嵌入java片断,还可以与html标签混用。若是说java代码是JSP页面和servlet交互的接口或者说是通道,那么这还仅仅是个通道,数据呢,数据怎么交流,servlet从数据库获得的数据怎么反馈到JSP页面,JSP页面又是怎样提取出数据呢,这就涉及到下面的servlet和session技术了。
  4. MVC框架之C
    做为MVC框架的核心,C位出道,天然充当着关键的做用。先说明一下,整个系统的流程大体为HTML/JSP->servlet->HTML/JSP。C中主要实现三个步骤(夸张点,全国通用):1、得到请求中的参数,2、根据参数去从数据库中得到值而后封装到session(处理),3、响应到对应页面,主要是重定向。对于箭头前的HTML/JSP,大可能是JSP,用户提出需求,而后servlet经过得到从请求中传过来的参数,结合DTO(有时才要)调用DAO中相应的方法,从数据库中获得须要的数据封装到session响应到对应页面,那么上一段中JSP页面与数据库数据交互的问题就解决了,请看下段。
  5. Session技术 若是说C是链接M与V之间的物理链路,那么Session就是它们之间的数据链路,物理链路通了数据链路不必定通,但数据链路通了物理链路必定通。物理链路只是为数据的传输提供渠道而已。Session的创建通常是在控制端,也就是servlet,它将获得的数据封装到Session中,重要的,核心的,敲重点,封装信息到Session是为这个Session设一个键值对,键就是key,值就是咱们要传输的信息,同时key是惟一标识Session的,JSP页面和servlet都可以经过惟一的key获得对应的数据信息,还有Session一旦创建,便贯穿全系统。这也就解决了JSP页面经过惟一的key值从对应的Session得到数据信息的问题。