1、自定义MVC三层框架思路

学习目标:

1、掌握MVC三层架构的思想

2、了解自定义MVC三层框架的思路

学习过程:

在学习MVC框架之前,让我们先尝试自定义一个MVC三层框架,这样对我们理解什么是MVC三层框架和理解MVC框架都是很有帮助的。首先让我们看看原始的使用servlet有什么缺点

1、每一个servlet都只能在doget或者dopost方法中处理业务,业务一旦复杂,那么doget方法中的处理代码就会非常多。

2、每个servlet都必须修改web.xml配置文件。使得web.xml变得越来越难维护,而且增大了出错的几率。

3、本身servlet就不是一个为MVC设计的技术,所以使用servlet并不能很好的体现MVC的思想。

所以我们需要更专业的MVC框架。越是很多人对servlet进行封装,很多MVC框架出现了,其中比较出名的就是struts2,spring mvc等等,这里我们先自己设计一个。

一、我们的目标

我们的数据库访问层(dao层),每一个业务逻辑都是一个方法,这样的代码模块块比较好,也容易维护,但是我们servlet的只有doget和dopost的方法,经常有很业务逻辑都是写在一起的。代码如下:

dao层的代码:

/**
 * dao 的实现类
 */
public class GoodsTypesDao {
    /**
     * 添加类别
     * 
     * @param goodsTypes
     * @return
     */
    public int addTypes(GoodsTypes goodsTypes) {
        return 0;
    }

    /**
     * 删除
     * 
     * @param id
     * @return
     */
    public int delTypes(int id) {
        return 0;
    }


    /**
     * 查询
     * 
     * @return
     */
    public List getAllTypes() {
        return null;
    }
}

那我们的控制层的代码是否可以像dao层的代码一样呢?比如我们现在使用一个新的action包,防止我们的控制层代码

/**
 * 控制层
 * 
 * @author Administrator
 * 
 */
public class GoodsTypesAction {
// 遍历商品类别
    public void listGoodsTypes() {
        // 1、获得页面的输入
        // 2、调用业务逻辑
        // 3、返回数据
        // 添加商品类别
    }

    //添加商品
    public void addGoodsTypes() {

    }

    //删除商品
    public void delGoodsTypes(){

    }
}

只有想不到,没有做不到的。这个想法应该是可以实现的。

二、我们的设计思路

下面我们就简单说说我们的实现思路,参考下图:

 

直接从一个request请求到后台的代码是不可能的,所以我们需要一个中转站(其实就是一个servlet)。这个中转站将会担任最核心的功能,它的功能如下:

1、读取配置文件信息

2、获得用户的url

3、根据url从配置文件获得对应action和method

4、执行Action和method

5、根据返回值跳去其他页面

你可能感兴趣的:(中级阶段2-常用框架学习)