使用MVC模式+Servlet+JDBC开发后台

来源:互联网 发布:淘宝店铺等级怎么查看 编辑:程序博客网 时间:2024/05/24 15:41

           前段时间在公司搞一个系统,由于团队都是应届毕业生,而且对后台开发框架不甚了解,所以自己就搭建了一个框架给他们使用,使用后发现扩展性和维护性还不错,现在分享给各位只有 Java 基础的朋友,不会框架,我们也能把后台搞起来。

           废话不多说,先看我的结构图:


             大体分析一下我们的结构图:整个系统分五大模块View(前端),Contrallor(控制器),Model(业务层),DAO(数据访问层)和数据库(MySQL)。其中 View 和 Model 对开发者开发,即扩展开放。由于五大模块的服务关系,以下将以登录验证例子对其进行逆序介绍。

          1. 数据库:

               数据库我们使用的是MySQL,理由很简单,MySQL免费。首先在数据库新建一张用户表 user

               属性名                         类型                            主键

               name                       varchar(10)                      是

               password                varchar(15)                       否

               role                          varchar(10)                      否

               接着插入一项测试数据('zgh', '123456', 'man')

               数据库操作这里就不详细说明了,不懂的请自行查资料,内容太多请见谅。

          2. DAO(数据访问层)

               DAO层为Model层服务。这里我使用的实现方式是JDBC,我自己封装了一个数据库访问类 JdbcLink.java,里面包含了对数据库表和视图增删改查操作,方法如下:


              方法的具体实现在我的另一篇博客http://blog.csdn.net/zhangguanghui002/article/details/70849449   这里不重复说明,下面重点讲解MVC三层的实现。

          3. Model(业务层,对开发者扩展开放)

               业务层为Contrallor层服务。它的任务是接收控制器传过来的数据,并进行一系列的逻辑操作,最后把处理结果返回给目的前端并实现页面跳转。

              实现步骤:

               i. 创建Model的超类MyModel.java,开发者扩展的所有业务类都要继承它。目的是统一业务的样式,清晰逻辑,易于维护和扩展。

       

               ii. 创建登录验证的业务类Login.java,继承 MyModel(JdbcLink为DAO层的封装类)


         4. Contrallor(控制器)

              控制器为View(前端)提供服务,这里我使用一个Servlet类作为控制器。控制器的任务是接收前端的请求,然后对请求分类交给对应的业务取处理,其中我的分类标准是按 requestCode 请求码进行分类,请看代码:


这里的请求码为1,代表为登录验证业务。其中请求码和业务的关联由项目管理者定义,开发者需管理者分配请求码方可对项目业务进行扩展。另外,还要对控制器进行配置,在 web.xml文件中加入以下代码:


其中<servlet-class>标签的值 com.controller.MyController 为自定义控制器类MyController的路径。

         5. View(前端,对开发者扩展开放)

             View中文翻译为视图,也就是我们常说的前端可视化页面。它的任务是跟用户进行交互和把数据提交给控制器。以下是一个登录页面 login.jsp 和 验证结果返回页面 result.jsp

            i. login.jsp


            ii. result.jsp


至此,我们的框架搭建完成,开发者主要获得项目管理者分配的请求码,就可以在上面任意进行 View(前端)和 Model(业务层)的扩展了,而且扩展后不会对已有业务产生影响。这就是我的维护性和扩展性良好的自定义框架。如各位朋友有任何疑惑或高见的都欢迎评论。


0 0
原创粉丝点击