一、MVC三层架构
(一)什么是MVC三层架构
MVC全称(Model-View-Controller)即模型层、视图层、控制层,是JavaWeb服务器比较主流的代码设计模式,宗旨高内聚、低耦合,也就是追求每层内部的元素尽量能独立完成某一功能,关联性强的情况下还不能有很高的依赖性,当一层代码进行改进后,其他层的尽可能不受其影响,这也对后期代码的维护、迭代更新更方便。
(二)MVC分层
Model层
即数据模型层,一般应用中包括业务逻辑层dao和数据访问层Service。数据访问层主要是对数据库访问时的操作进行一些封装,业务逻辑层主要作用是将Controller控制层的数据和数据库封装的操作进行一个桥接。除此之外还进行一些复杂的业务逻辑和事务的处理。
Controller层
即数据控制层,一般是对View视图层提交为其设置对应的Servlet进行特定功能的处理。 也是进行HTTPServlet操作的主要层之一,这里面进行的特点功能一般是model层里面封装的数据 和方法。
View层
即视图层,主要作用就是编写一些前台的代码,也是最先呈现在客户面前的视图。这里面进行一些前端页面的编写,比如jsp、html、css。
二、Session的描述
首先,我们要知道,服务器中的HTTP协议他是一种无状态的协议,目的是为了保证它的安全性。但这种无状态的协议也导致访问的问题,我们在进行一次请求,当服务器响应过后一次协议就结束了,也就是说这种协议虽然保证了服务器和客户端通讯的一个安全性,但它的存储数据却是十分的拉胯。所以我们才引出session域对象这一概念,当客户端第一次向服务器发出请求时服务器会为这个session对象创建一个特有的sessionID,当这个对象下次再进行请求时,就会携带着上次访问的数据,也就是说,这样会保证数据的一个存储,防止导致数据丢失的问题。
三、代码的实现
通过上面我们对MVC和session对象的简单概述,相信大家已经对其有一定的了解,那么接下来就看看如何使用其实现对商品添加进购物车的场景:
通过上面,我们可以看到,MVC的三层架构,分别是controller数据控制层,其中包括两个servlet类,也就是实现session功能的类,进行添加购物车的操作。其次就是model模型层,其中包括三个分层:dao数据访问层和、model模型和service业务逻辑层。数据访问层用来实现数据库的连接与访问,业务逻辑层就是对数据库操作的封装进行第二次封装,主要目的就是实现架构的高内聚低耦合的理念,model模型里面有一个数据库中表对应的类,这里也应用了ORM编程思想,一个表对应一个类,一个属性对应一个表中的列,属性值就是一列对应的值,每一行就是一个product对象。最后是view视图层,也就是进行后台提供后的数据进行页面呈现。
Model层:
dao数据访问层
package com.ujiuye.dao;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.ujiuye.model.Product;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import jav