亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java教學(xué)中三層架構(gòu)之講授技巧

        2009-02-24 07:02:48
        計算機教育 2009年2期
        關(guān)鍵詞:三層架構(gòu)

        周 永 岳 靜

        文章編號:1672-5913(2009)02-0127-03

        摘要:本文講述了在面向?qū)ο缶幊陶Z言Java的教學(xué)中,如何通過使用有效的教學(xué)方法和技巧,讓學(xué)生從理論上能夠很好地理解三層架構(gòu),從實踐上能夠很好地運用三層架構(gòu)進行網(wǎng)絡(luò)及數(shù)據(jù)庫程序開發(fā)。

        關(guān)鍵詞:Java教學(xué);三層架構(gòu);網(wǎng)絡(luò)程序

        中圖分類號:G642

        文獻標識碼:B

        Java是近年來非常流行的編程語言,其安全性和可移植性是兩個最大的優(yōu)點,并且是純粹的面向?qū)ο笳Z言。因為Java語言的實用和受歡迎程度,越來越多的高校都選擇了Java這門編程語言給學(xué)生講授。雖然Java摒棄了C和C++語言中一些復(fù)雜的語法格式,不少人認為它是簡單的,但實際上,對于沒有面向?qū)ο罄碚摰膶W(xué)生,仍然需要花費比較多的時間才能入門。筆者已連續(xù)七年從事Java教學(xué),并在教學(xué)中不斷地探索和總結(jié),找出了一些很好的、能引導(dǎo)學(xué)生進入Java殿堂的方法。下面以Java教學(xué)中較困難的三層架構(gòu)為例進行說明。

        1概述

        三層架構(gòu)是目前流行的架構(gòu)設(shè)計模式,它由表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層三個層次結(jié)構(gòu)組成。通常情況下我們所說的三層架構(gòu),實際上并不是指確定的數(shù)值“三”,三代表“多”,三層架構(gòu)實際上叫做多層架構(gòu)。在本文中,只論述真正只有三層的架構(gòu),即“客戶端—中間層服務(wù)—后臺數(shù)據(jù)庫服務(wù)器”這樣的架構(gòu),主要探討在Java這門特定的語言中如何更好地向?qū)W生傳授三層架構(gòu)的編程理念與方法。

        2讓學(xué)生從感性上認識三層架構(gòu)

        Java是面向?qū)ο蟮恼Z言,但很多教師在教學(xué)的時候卻忽略了他們“面向的對象”,即坐在教師面前的學(xué)生,不注意因材施教。如果是對于已經(jīng)具有面向?qū)ο笏枷氲膶W(xué)生,在講解很多的內(nèi)容時可以比較輕松的帶過;但對于初次碰到面向?qū)ο缶幊陶Z言的學(xué)生,在講授過程中,教師必須要讓他們先理解面向?qū)ο?,然后才能講在Java中的對象是怎么樣的。同樣的道理,在進行三層架構(gòu)編程的教學(xué)時,如果學(xué)生連三層架構(gòu)都認識不清,如何能學(xué)好這方面的編程呢?

        教師首先可以通過“問答式教學(xué)”讓學(xué)生了解,傳統(tǒng)的兩層架構(gòu)的缺點??梢赃@樣引導(dǎo)學(xué)生:將大家已經(jīng)編寫好的訪問數(shù)據(jù)庫的程序,轉(zhuǎn)換成Applet在網(wǎng)頁中運行。已知在本地計算機測試能夠成功運行,那么,當(dāng)把Applet傳到Web服務(wù)器上,其他的用戶通過你編寫的網(wǎng)頁能否正常的訪問數(shù)據(jù)庫呢?學(xué)生思考一下便知道,在本地計算機上能夠成功是因為正確的配置了ODBC數(shù)據(jù)源。但是,瀏覽網(wǎng)頁的用戶并沒有相應(yīng)的配置數(shù)據(jù)源,也沒有訪問數(shù)據(jù)庫的驅(qū)動程序。在這些計算機上,就無法連接到后臺數(shù)據(jù)庫。

        教師在講授比較復(fù)雜的內(nèi)容的時候,最好不要先講一大堆理論,而是最好先讓學(xué)生建立一種感性上的認識。教師要么通過生動的語言,要么通過形象的比喻,讓學(xué)生建立感性認識。對于三層架構(gòu),可以這樣比喻:兩層架構(gòu)是學(xué)生直接把作業(yè)交給教師;三層架構(gòu)是學(xué)生把作業(yè)交給課代表,之后由課代表交給教師。在兩層的情形中,每一個學(xué)生都要知道老師的辦公室在什么地方;而在三層的情形中,普通學(xué)生無需知道老師的辦公室在什么地方,只需課代表知道就可以了。

        3讓學(xué)生從理論上認識三層架構(gòu)

        在傳統(tǒng)的兩層架構(gòu)中,只有客戶端和后臺數(shù)據(jù)庫,這就要求兩點:一是客戶端必須具有數(shù)據(jù)訪問的引擎,這樣才能連接數(shù)據(jù)庫;二是每一個客戶端都需要知道后臺數(shù)據(jù)庫的位置。而對于三層架構(gòu),客戶端把數(shù)據(jù)發(fā)送到中間層服務(wù)器,中間層服務(wù)器再負責(zé)和后臺數(shù)據(jù)庫之間的數(shù)據(jù)傳遞。顯然地,三層模型具有很大的優(yōu)點。對客戶端而言,它不需要數(shù)據(jù)訪問引擎,它也不需要知道后臺數(shù)據(jù)庫在什么地方。客戶只需要知道中間層服務(wù)器在什么地方就可以了。這種實現(xiàn)方案,實際上提高了系統(tǒng)的安全性:對客戶端而言,服務(wù)器是隱藏的,客戶不知道服務(wù)器的具體位置。圖1是三層架構(gòu)程序的示意圖:

        在讓學(xué)生從總體上了解了三層架構(gòu)之后,接下來,需要講解和三層架構(gòu)編程相關(guān)的一些概念。學(xué)生必須掌握這些知識,才能進行后續(xù)的實際編程。要給學(xué)生講解的幾個概念是:協(xié)議、套接字、IP地址和端口。

        協(xié)議:當(dāng)計算機之間進行通訊的時候,需要遵循一定的規(guī)則。數(shù)據(jù)以包的形式從一臺機器發(fā)送到另一臺。這些規(guī)則管理數(shù)據(jù)的打包、數(shù)據(jù)傳輸速度,以及重新創(chuàng)建數(shù)據(jù)將其恢復(fù)成原始形式。這些規(guī)則被稱為網(wǎng)絡(luò)協(xié)議。網(wǎng)絡(luò)協(xié)議是通過網(wǎng)絡(luò)進行通訊的系統(tǒng)所遵循的一系列規(guī)則和慣例。網(wǎng)絡(luò)協(xié)議如TCP/IP、UDP、Apple Talk和NetBEUI。Java提供了一個豐富的、支持網(wǎng)絡(luò)的類庫,這些類使得應(yīng)用程序能方便地訪問網(wǎng)絡(luò)資源。Java提供了對用戶報文協(xié)議(UDP)及傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)的支持。

        套接字:傳輸控制協(xié)議(TCP)提供了一條可靠的、點對點的通訊通道,客戶機/服務(wù)器應(yīng)用程序可以用該通道相互通訊。要通過TCP進行通訊,客戶機和服務(wù)器程序建立連接并綁定套接字。套接字用于處理通過網(wǎng)絡(luò)連接的應(yīng)用程序之間的通訊??蛻魴C和服務(wù)器之間更深入的通訊通過套接字完成。Java被設(shè)計成一種網(wǎng)絡(luò)語言。它將連接功能封裝到套接字類里,而使得網(wǎng)絡(luò)編程更加容易。套接字類(即java.net.Socket類)用于創(chuàng)建一個客戶套接字,而服務(wù)器套接字類(即java.net.ServerSocket類)創(chuàng)建一個服務(wù)器套接字。

        IP地址和端口:TCP協(xié)議需要兩個數(shù)據(jù)項:IP地址和端口號?;ヂ?lián)網(wǎng)設(shè)備都帶有一個稱為IP地址的邏輯地址。IP地址具有特定的形式,每個IP地址都是32位的數(shù)值,表示4個范圍在0到255之間的數(shù)值。目前采用的32個二進制位進行編碼的IP地址又被稱為IPv4標準,下一代編碼將采用IPv6標準,以128個二進制位進行編碼。端口號是一個邏輯概念,不同的端口用來響應(yīng)不同的服務(wù),常用的端口如21、80、110等??梢赃@樣理解:IP地址讓我們找到特定計算機,而端口號讓我們找到計算機上的程序進程。

        4讓學(xué)生掌握Java中三層架構(gòu)程序開發(fā)的方法

        下面以NIIT提供的Java教材為例,講解三層架構(gòu)程序的開發(fā)。軟件需求是:用戶在界面中輸入數(shù)據(jù),數(shù)據(jù)以對象的方式發(fā)送給中間層服務(wù)器,中間層服務(wù)器驗證數(shù)據(jù)后,連接到數(shù)據(jù)庫服務(wù)器并執(zhí)行存儲操作。以下是教學(xué)中的要點。

        4.1了解要用到的相關(guān)類和方法

        (1) 服務(wù)器使用的類:

        創(chuàng)建服務(wù)器的過程就是創(chuàng)建在特定端口監(jiān)聽客戶機請求的ServerSocket對象的過程。當(dāng)收到一個合法請求時,服務(wù)器套接字獲得客戶機創(chuàng)建的Socket對象。服務(wù)器和客戶機之間的通訊通過套接字發(fā)生。服務(wù)器套接字等待來自整個網(wǎng)絡(luò)的請求。它根據(jù)請求完成操作,并將結(jié)果返回到客戶機。ServerSocket類在客戶機/服務(wù)器應(yīng)用程序中代表服務(wù)器。ServerSocket類提供在特定端口上創(chuàng)建套接字的構(gòu)造函數(shù)。如果傳入端口的參數(shù)值為0,則在自由端口上創(chuàng)建套接字。

        ServerSocket的構(gòu)造方法:

        public ServerSocket(int port) throws IOException

        功能:創(chuàng)建服務(wù)器套接字,并綁定到指定的端口上。例如:ServerSocket server=new ServerSocket(5460);

        注意:該類在構(gòu)造的時候,可能導(dǎo)致例外的發(fā)生。例如,指定的端口已經(jīng)被占用。

        (2) 客戶端使用的類:

        創(chuàng)建一個套接字客戶機的第一步是創(chuàng)建Socket對象。Socket類的構(gòu)造函數(shù)接收兩個參數(shù) IP地址和服務(wù)器監(jiān)聽的端口號。

        Socket clientSocket =

        new Socket(“202.202.96.35”,5460);

        在上述代碼片段中,主機名是“202.202.96.35”,端口號5460是服務(wù)器監(jiān)聽所在的端口。

        4.2了解封裝數(shù)據(jù)的方法

        創(chuàng)建網(wǎng)絡(luò)服務(wù)器時,服務(wù)器程序如何與客戶進行交流?也就是服務(wù)器如何知道客戶所傳遞的數(shù)據(jù)到底是什么格式?客戶機與服務(wù)器的數(shù)據(jù)傳遞的前提包括:

        (1) 二者在數(shù)據(jù)的發(fā)送和接收上必須保持一定的格式,相互間能識別;

        (2) 要保持格式的一致性應(yīng)事先約定;

        (3) 實現(xiàn)一致的方法是,客戶端在發(fā)送數(shù)據(jù)時,將數(shù)據(jù)封裝到一個類里面。服務(wù)器端接收到數(shù)據(jù)后,把收到的數(shù)據(jù)強制轉(zhuǎn)換為相應(yīng)類型;

        (4) 要達到上述目的應(yīng)該使用java.io包下的ObjectInputStream、ObjectOutputStream類。

        4.3 寫程序時的步驟

        (1) 用來封裝要傳遞數(shù)據(jù)的類。下面是一個例子:

        import java.io.*;

        public class MyFriend extends Object

        implements Serializable

        {

        String vName;

        String cSex;

        String dBirth;

        String cPhone;

        }

        (2) 編寫接收和存儲數(shù)據(jù)的類(Connect)

        用一個客戶請求套接字作為構(gòu)造參數(shù),之后讀取收到的數(shù)據(jù)并進行格式化(造型操作)。

        ObjectInputStream streamClient= new ObjectInputStream(inFromClient.getInputStream())

        MyFriend data=(MyFriend)

        streamClient.readObject();

        (3) 編寫監(jiān)聽端口、響應(yīng)客戶請求的類(AppServer)

        服務(wù)器程序通過ServerSocket類監(jiān)聽客戶的請求,由于客戶不止一個,所以,服務(wù)器程序應(yīng)該是一個多線程的程序。通過extendsThread方法可以讓服務(wù)器類實現(xiàn)多線程。

        (4) 編寫客戶端程序

        4.4調(diào)試時的注意事項

        對于客戶端而言,客戶程序中要指定中間層服務(wù)器的IP地址和端口,通過IP地址和端口連接到中間層服務(wù)器。對于中間層服務(wù)器而言,它要接受客戶端傳遞來的數(shù)據(jù),所以必須運行在和客戶端約定好的一個端口上。另外,中間層負責(zé)訪問后臺數(shù)據(jù)庫服務(wù)器,所以必須保證ODBC的成功配置。調(diào)試的時候必須注意啟動順序:第一,后臺數(shù)據(jù)庫(如SQL Server)正在運行;第二,中間層服務(wù)器啟動,開始偵聽來自客戶的請求;第三,運行客戶端。

        5小結(jié)

        以上以三層架構(gòu)為例,展示了如何更好地將知識傳授給學(xué)生。教師要很好地完成傳道授業(yè)的重任,除了在專業(yè)領(lǐng)域提高深度與廣度外,還需要相當(dāng)?shù)呢?zé)任感。要用心去準備每一堂課,要和學(xué)生換位,站在他們的角度,考慮選擇怎么樣的講授方法。此外,教師還應(yīng)該在自己的教學(xué)中不斷總結(jié),讓自己不斷提高。

        參考文獻

        [1] 張席,王志強. 國內(nèi)外Java教學(xué)模式的比較與探討[J]. 計算機教育,2007,(1).

        [2] 王紅.“Java 語言程序設(shè)計”課學(xué)生能力的培養(yǎng)[J]. 計算機教育,2007,(8).

        [3] 教育部人事司. 高等教育心理學(xué)[M]. 北京:高等教育出版社,2004.

        [4] 覃昆,張蓉蓉. 基于B/S結(jié)構(gòu)、三層架構(gòu)和ASP.NET 2.0技術(shù)的基層黨組織協(xié)同管理系統(tǒng)設(shè)計與實現(xiàn)[J]. 貴州大學(xué)學(xué)報(自然科學(xué)版),2008,(1).

        [5] 孫衛(wèi)琴. Java面向?qū)ο缶幊蘙M]. 北京:電子工業(yè)出版社,2008.

        猜你喜歡
        三層架構(gòu)
        基于.NET電子網(wǎng)絡(luò)技術(shù)的高??蒲泄芾硐到y(tǒng)設(shè)計研究
        基于“三層架構(gòu)”理論的教學(xué)設(shè)計案例分析
        良好的信息系統(tǒng)體系結(jié)構(gòu)模式對網(wǎng)絡(luò)安全監(jiān)察與維護技術(shù)的方法的探討
        ASP.NET三層架構(gòu)體系分析與應(yīng)用
        培訓(xùn)機構(gòu)信息發(fā)布平臺的設(shè)計與實現(xiàn)
        匯票管理系統(tǒng)的設(shè)計與實現(xiàn)
        基于SSH 的實驗室管理系統(tǒng)設(shè)計與實現(xiàn)
        基于ASP.NETAJAX技術(shù)的在線考試系統(tǒng)設(shè)計與實現(xiàn)
        基于三層架構(gòu)的煙草公司績效考核系統(tǒng)的設(shè)計與實現(xiàn)
        基于三層架構(gòu)的青春勵志網(wǎng)站設(shè)計與開發(fā)
        亚洲日韩精品一区二区三区| 天天av天天爽无码中文| 国产免费av片在线观看播放| 欧美第一黄网免费网站| 亚洲一级无码片一区二区三区| 在线观看极品裸体淫片av| 熟女免费视频一区二区| 丰满少妇在线播放bd| 中字乱码视频| 日日摸天天摸97狠狠婷婷| 中文无码精品a∨在线观看不卡 | 国产高清一区二区三区三州| 中文在线中文a| 乱中年女人伦av一区二区| 国产95在线 | 欧美| 国产尤物AV尤物在线看| 久久一区二区三区四区| 国产av无码专区亚洲aⅴ| 亚洲精品大全中文字幕| 国产精品熟女一区二区三区 | 中国人妻沙发上喷白将av| 大陆少妇一区二区三区| 久久婷婷综合缴情亚洲狠狠| 在线观看特色大片免费视频 | 护士奶头又白又大又好摸视频| 美日韩毛片| 亚洲国产精品综合久久20| 黄网站a毛片免费观看久久| 日韩精品免费一区二区三区观看| 国产av无码专区亚洲av中文| 亚洲av男人的天堂在线观看| 亚洲av影院一区二区三区四区| 国产喷白浆精品一区二区| 男女动态视频99精品| 亚洲最新无码中文字幕久久| 国语自产偷拍精品视频偷| 国产黄页网站在线观看免费视频 | 久久久久九九精品影院| 国产女厕偷窥系列在线视频| 国产乱子乱人伦电影在线观看| 亚洲午夜久久久久中文字幕久|