Java web应用开发课程中MVC编程模式教学过程剖析
2018-05-14林萍
林萍
[摘 要] 针对Java web应用开发课程中MVC编程模式的教学难度大、学生掌握不好的教学实际,分析了教学过程中存在的困难和学生容易失去信心和兴趣的环节,提出一步一步深入讲解,每个环节提出问题并解决,从而达到学生轻松掌握本知识点的目的,为后续课程做好充分准备。
[关 键 词] Java web;jsp;MVC;servlet
[中图分类号] G712 [文献标志码] A [文章编号] 2096-0603(2018)17-0039-03
Java web应用开发课程是一门综合性非常强的专业核心课程,它的前导课程包括Java面向对象程序设计、网页设计、数据库基础、客户端编程等一系列的专业基础课,所以学生在学习本门课程的时候,都会觉得非常吃力并且掌握不好,尤其是对MVC三层模式的理解非常困难。在Java web应用开发课程教学中将这些基本概念讲清楚、讲透彻是提高课堂教学质量的关键。通过多年教学实践,笔者对这些难点、要点进行了研究探讨[1]。
本门课程以mysql作为后端数据库、前端采用jsp+servlet+javabean的MVC模式来讲解开发一个学生信息管理系统。首先通过Java连接mysql数据库、然后jsp显示数据,进而引出广泛使用的MVC编程模式,一步步由浅入深地讲解整个大型网站的开发过程,并且采用教学做一体化的教学模式,是学生在学中做,做中学,轻松掌握核心的专业知识,为后续的利用框架进行大型网站开发课程打下坚实的基础。
一、数据库准备
Mysql数据库是一种开放源代码的关系型数据库管理系统(RDBMS),它是Oracle公司提供的一种开源数据库,由于其小巧、快速而备受关注,如今很多大型网站,如淘宝网已经全面采用mysql数据库进行数据的存储,所以其应用前景非常好,Java也是oracle公司的产品,可以做到和mysql无缝连接,所以在学习本门课程的时候,优选mysql作为后端开发数据库。
首先采用学生熟悉的学生信息管理作为开发背景,设计出两张简易的学生信息表:
设计出表之后,再增加几行数据,这时增加授课班级的信息,会让同学们熟悉并更好理解需求,以某次上课班级信息数据如图1和图2所示:
二、引入Java连接数据库并显示数据
Java连接mysql数据库,首先需要下载mysql的jdbc包,此包由数据库厂商免费提供。Java连接数据库包括以下四个步骤[2]:
(一)在Java程序中加载驱动程序
Class.forName("驱动名称");
(二)创建数据连接对象
Connection conn= DriverManager.getConnection("连接数据库的URL","用户名","密码");
(三)创建Statement对象
Statement stat =conn.createStatement();
(四)调用Statement对象的相关方法执行相对应的SQL语句
ResultSet rs = stat.executeQuery("select * from student");
然后才可以对rs中被访问出的数据对象进行操作。
其中驱动名称和连接数据库的url很难记忆,对学生来说记忆也非常痛苦,可以利用myeclipse开发环境的“myeclipse database explorer”来自动产生驱动名称和url,如图3所示,从而减少学生的记忆痛苦,提高学习兴趣。
测试成功,带领学生编写以下代码,并且在控制台输出学生信息:
//1.导入驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
Connection con = DriverManager.getConnection("jdbc: mysql://localhost:3306/jsp","root","root");
//3.产生语句对象
Statement st = con.createStatement();
//4.处理结果集
String sql = "select xuehao,name,score from student";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){ System.out.println(rs.getString("xuehao")+"\t"+rs.getString("name")+"\t"+rs.getInt("score"));}
此段代码一定要带着学生运行成功并显示数据,为后续学习提供有力保证:
三、在jsp页面中连接数据库并显示数据
将上面的Java代码复制到jsp文件中,修改jsp的page指令,导入Java.sql包,把mysql的jdbc驱动包放入项目的lib文件夹下,修改必要的代码,将学生信息显示在ie中:
此部分操作相对简单,只要理解了第二步的代码书写,學生都能在此步骤轻松地掌握。
四、将代码分层jsp+javabean模式
将所有代码都写在jsp文件中,显然不利于代码重复利用,也不利于程序扩展,需要将代码分层处理,jsp页面只起到显示作用,分层如下:
1.将连接数据库单独写到一个DBUtil.java文件中,以备所有连接数据库重复利用。
2.应用面向对象的思路,将数据库表和Java类一一对应,从而实现面向对象编程。所以相应增加两个pojo(Plain Ordinary Java Object)类,Student类和Banji类。
3.对每个表的增删改查操作分别用对应的DAO(Data Access Object)类来实现,如对student表的操作,编写StudentDAO类来实现对student表的增删改查结构化操作。如图6所示:
在DAO类中的增删改查操作,一定要测试成功后再进行下一步操作,否则学生很容易失去耐心和信心。而且要留下足够的时间让学生自己充分理解代码并书写实现功能,此处是重点也是难点,很多学生在此环节没跟上就会失去学习的信心和动力。
五、引入servlet,MVC模式展现
上面的模式中,还会有一些不是显示性质的代码寫入jsp文件中,在实际开发过程中,jsp文件仅仅是用来显示内容,而其他功能性的代码都会放置在java文件中,因此,实际开发过程中,引入控制层(control)来控制代码的流程走向,因此,引入servlet来达到控制代码走向的目的,通常,我们采用每个种操作对应一个servlet,在servlet中调用DAO文件,并将结果以request或者session等传递出去。如图7所示:
至此,带领学生完成了整个jsp+serlvet+javabean的教学工作,每一个环节都让学生充分理解为什么要这样做,这样做的目的和优点,从而讲清楚MVC模式的优点,V(view)显示层,主要指的jsp文件或者html文件,专门用于显示,C(control)控制层,主要指的servlet文件,专门用于控制流程走向,负责V层和M层之间的调度安排。其他的java文件,包括pojo和DAO等都属于M层,用于使用面向对象思路来对数据库进行操作并且展示到页面上。MVC不允许M和V直接交互,必须通过C层进行操作,从而使显示层和模型层低耦合。
六、总结
Java web应用开发是一门综合性很强的课程,其中的MVC模式编程是教学中的重点和难点,掌握这个模式为后续的课程和工作都会打下坚实的基础,在讲解完成后,还可以进一步提出将用户的逻辑需求再分一层,叫逻辑层(business),简写为BIZ,对应的就会有StudentBIZ.java和BanjiBIZ.java分别用于处理用户逻辑的类,这个在后续课程spring或者structs中会讲到,如果能提前学习会有利于后续课程知识的掌握。
参考文献:
[1]杨占胜,许作萍,张雪飞.JSP应用开发课程教学难点要点剖析[J].计算机教育,2015(20):96.
[2]牛德雄,陈华政,李彬,等.基于MVC的jsp软件开发案例[M].北京:清华大学出版社,2014.