国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Java web應(yīng)用開發(fā)課程中MVC編程模式教學(xué)過程剖析

2018-05-14 13:52:18林萍
關(guān)鍵詞:本門代碼編程

林萍

[摘 要] 針對Java web應(yīng)用開發(fā)課程中MVC編程模式的教學(xué)難度大、學(xué)生掌握不好的教學(xué)實(shí)際,分析了教學(xué)過程中存在的困難和學(xué)生容易失去信心和興趣的環(huán)節(jié),提出一步一步深入講解,每個(gè)環(huán)節(jié)提出問題并解決,從而達(dá)到學(xué)生輕松掌握本知識點(diǎn)的目的,為后續(xù)課程做好充分準(zhǔn)備。

[關(guān) 鍵 詞] Java web;jsp;MVC;servlet

[中圖分類號] G712 [文獻(xiàn)標(biāo)志碼] A [文章編號] 2096-0603(2018)17-0039-03

Java web應(yīng)用開發(fā)課程是一門綜合性非常強(qiáng)的專業(yè)核心課程,它的前導(dǎo)課程包括Java面向?qū)ο蟪绦蛟O(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、數(shù)據(jù)庫基礎(chǔ)、客戶端編程等一系列的專業(yè)基礎(chǔ)課,所以學(xué)生在學(xué)習(xí)本門課程的時(shí)候,都會(huì)覺得非常吃力并且掌握不好,尤其是對MVC三層模式的理解非常困難。在Java web應(yīng)用開發(fā)課程教學(xué)中將這些基本概念講清楚、講透徹是提高課堂教學(xué)質(zhì)量的關(guān)鍵。通過多年教學(xué)實(shí)踐,筆者對這些難點(diǎn)、要點(diǎn)進(jìn)行了研究探討[1]。

本門課程以mysql作為后端數(shù)據(jù)庫、前端采用jsp+servlet+javabean的MVC模式來講解開發(fā)一個(gè)學(xué)生信息管理系統(tǒng)。首先通過Java連接mysql數(shù)據(jù)庫、然后jsp顯示數(shù)據(jù),進(jìn)而引出廣泛使用的MVC編程模式,一步步由淺入深地講解整個(gè)大型網(wǎng)站的開發(fā)過程,并且采用教學(xué)做一體化的教學(xué)模式,是學(xué)生在學(xué)中做,做中學(xué),輕松掌握核心的專業(yè)知識,為后續(xù)的利用框架進(jìn)行大型網(wǎng)站開發(fā)課程打下堅(jiān)實(shí)的基礎(chǔ)。

一、數(shù)據(jù)庫準(zhǔn)備

Mysql數(shù)據(jù)庫是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),它是Oracle公司提供的一種開源數(shù)據(jù)庫,由于其小巧、快速而備受關(guān)注,如今很多大型網(wǎng)站,如淘寶網(wǎng)已經(jīng)全面采用mysql數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲,所以其應(yīng)用前景非常好,Java也是oracle公司的產(chǎn)品,可以做到和mysql無縫連接,所以在學(xué)習(xí)本門課程的時(shí)候,優(yōu)選mysql作為后端開發(fā)數(shù)據(jù)庫。

首先采用學(xué)生熟悉的學(xué)生信息管理作為開發(fā)背景,設(shè)計(jì)出兩張簡易的學(xué)生信息表:

設(shè)計(jì)出表之后,再增加幾行數(shù)據(jù),這時(shí)增加授課班級的信息,會(huì)讓同學(xué)們熟悉并更好理解需求,以某次上課班級信息數(shù)據(jù)如圖1和圖2所示:

二、引入Java連接數(shù)據(jù)庫并顯示數(shù)據(jù)

Java連接mysql數(shù)據(jù)庫,首先需要下載mysql的jdbc包,此包由數(shù)據(jù)庫廠商免費(fèi)提供。Java連接數(shù)據(jù)庫包括以下四個(gè)步驟[2]:

(一)在Java程序中加載驅(qū)動(dòng)程序

Class.forName("驅(qū)動(dòng)名稱");

(二)創(chuàng)建數(shù)據(jù)連接對象

Connection conn= DriverManager.getConnection("連接數(shù)據(jù)庫的URL","用戶名","密碼");

(三)創(chuàng)建Statement對象

Statement stat =conn.createStatement();

(四)調(diào)用Statement對象的相關(guān)方法執(zhí)行相對應(yīng)的SQL語句

ResultSet rs = stat.executeQuery("select * from student");

然后才可以對rs中被訪問出的數(shù)據(jù)對象進(jìn)行操作。

其中驅(qū)動(dòng)名稱和連接數(shù)據(jù)庫的url很難記憶,對學(xué)生來說記憶也非常痛苦,可以利用myeclipse開發(fā)環(huán)境的“myeclipse database explorer”來自動(dòng)產(chǎn)生驅(qū)動(dòng)名稱和url,如圖3所示,從而減少學(xué)生的記憶痛苦,提高學(xué)習(xí)興趣。

測試成功,帶領(lǐng)學(xué)生編寫以下代碼,并且在控制臺輸出學(xué)生信息:

//1.導(dǎo)入驅(qū)動(dòng)

Class.forName("com.mysql.jdbc.Driver");

//2.獲取連接

Connection con = DriverManager.getConnection("jdbc: mysql://localhost:3306/jsp","root","root");

//3.產(chǎn)生語句對象

Statement st = con.createStatement();

//4.處理結(jié)果集

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"));}

此段代碼一定要帶著學(xué)生運(yùn)行成功并顯示數(shù)據(jù),為后續(xù)學(xué)習(xí)提供有力保證:

三、在jsp頁面中連接數(shù)據(jù)庫并顯示數(shù)據(jù)

將上面的Java代碼復(fù)制到j(luò)sp文件中,修改jsp的page指令,導(dǎo)入Java.sql包,把mysql的jdbc驅(qū)動(dòng)包放入項(xiàng)目的lib文件夾下,修改必要的代碼,將學(xué)生信息顯示在ie中:

此部分操作相對簡單,只要理解了第二步的代碼書寫,學(xué)生都能在此步驟輕松地掌握。

四、將代碼分層jsp+javabean模式

將所有代碼都寫在jsp文件中,顯然不利于代碼重復(fù)利用,也不利于程序擴(kuò)展,需要將代碼分層處理,jsp頁面只起到顯示作用,分層如下:

1.將連接數(shù)據(jù)庫單獨(dú)寫到一個(gè)DBUtil.java文件中,以備所有連接數(shù)據(jù)庫重復(fù)利用。

2.應(yīng)用面向?qū)ο蟮乃悸?,將?shù)據(jù)庫表和Java類一一對應(yīng),從而實(shí)現(xiàn)面向?qū)ο缶幊?。所以相?yīng)增加兩個(gè)pojo(Plain Ordinary Java Object)類,Student類和Banji類。

3.對每個(gè)表的增刪改查操作分別用對應(yīng)的DAO(Data Access Object)類來實(shí)現(xiàn),如對student表的操作,編寫StudentDAO類來實(shí)現(xiàn)對student表的增刪改查結(jié)構(gòu)化操作。如圖6所示:

在DAO類中的增刪改查操作,一定要測試成功后再進(jìn)行下一步操作,否則學(xué)生很容易失去耐心和信心。而且要留下足夠的時(shí)間讓學(xué)生自己充分理解代碼并書寫實(shí)現(xiàn)功能,此處是重點(diǎn)也是難點(diǎn),很多學(xué)生在此環(huán)節(jié)沒跟上就會(huì)失去學(xué)習(xí)的信心和動(dòng)力。

五、引入servlet,MVC模式展現(xiàn)

上面的模式中,還會(huì)有一些不是顯示性質(zhì)的代碼寫入jsp文件中,在實(shí)際開發(fā)過程中,jsp文件僅僅是用來顯示內(nèi)容,而其他功能性的代碼都會(huì)放置在java文件中,因此,實(shí)際開發(fā)過程中,引入控制層(control)來控制代碼的流程走向,因此,引入servlet來達(dá)到控制代碼走向的目的,通常,我們采用每個(gè)種操作對應(yīng)一個(gè)servlet,在servlet中調(diào)用DAO文件,并將結(jié)果以request或者session等傳遞出去。如圖7所示:

至此,帶領(lǐng)學(xué)生完成了整個(gè)jsp+serlvet+javabean的教學(xué)工作,每一個(gè)環(huán)節(jié)都讓學(xué)生充分理解為什么要這樣做,這樣做的目的和優(yōu)點(diǎn),從而講清楚MVC模式的優(yōu)點(diǎn),V(view)顯示層,主要指的jsp文件或者h(yuǎn)tml文件,專門用于顯示,C(control)控制層,主要指的servlet文件,專門用于控制流程走向,負(fù)責(zé)V層和M層之間的調(diào)度安排。其他的java文件,包括pojo和DAO等都屬于M層,用于使用面向?qū)ο笏悸穪韺?shù)據(jù)庫進(jìn)行操作并且展示到頁面上。MVC不允許M和V直接交互,必須通過C層進(jìn)行操作,從而使顯示層和模型層低耦合。

六、總結(jié)

Java web應(yīng)用開發(fā)是一門綜合性很強(qiáng)的課程,其中的MVC模式編程是教學(xué)中的重點(diǎn)和難點(diǎn),掌握這個(gè)模式為后續(xù)的課程和工作都會(huì)打下堅(jiān)實(shí)的基礎(chǔ),在講解完成后,還可以進(jìn)一步提出將用戶的邏輯需求再分一層,叫邏輯層(business),簡寫為BIZ,對應(yīng)的就會(huì)有StudentBIZ.java和BanjiBIZ.java分別用于處理用戶邏輯的類,這個(gè)在后續(xù)課程spring或者structs中會(huì)講到,如果能提前學(xué)習(xí)會(huì)有利于后續(xù)課程知識的掌握。

參考文獻(xiàn):

[1]楊占勝,許作萍,張雪飛.JSP應(yīng)用開發(fā)課程教學(xué)難點(diǎn)要點(diǎn)剖析[J].計(jì)算機(jī)教育,2015(20):96.

[2]牛德雄,陳華政,李彬,等.基于MVC的jsp軟件開發(fā)案例[M].北京:清華大學(xué)出版社,2014.

猜你喜歡
本門代碼編程
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
開設(shè)全科醫(yī)療中的醫(yī)患關(guān)系及溝通技巧課程的調(diào)查分析
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
Control-Oriented Modeling and Simulation on Rigid-Aeroelasticity Coupling for Hypersonic Vehicle
上饶县| 辽阳市| 昭苏县| 枣强县| 沽源县| 曲水县| 车致| 肥乡县| 香格里拉县| 盐源县| 杂多县| 安福县| 靖远县| 卢氏县| 武川县| 甘谷县| 阿拉善盟| 噶尔县| 鄯善县| 晋城| 泾阳县| 礼泉县| 兴安县| 崇州市| 察隅县| 雷波县| 祁东县| 淮南市| 金塔县| 青海省| 普定县| 宜阳县| 城市| 儋州市| 太湖县| 肃北| 沅陵县| 木里| 彭水| 太原市| 南涧|