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

        ?

        淺析基于JSP技術(shù)的JavaBean和Servlet

        2015-01-10 07:49:40劉曉崢
        科技視界 2015年34期
        關(guān)鍵詞:服務(wù)器端客戶端組件

        劉曉崢

        (長(zhǎng)江工程職業(yè)技術(shù)學(xué)院,湖北 武漢 430212)

        隨著web 技術(shù)的出現(xiàn),早期網(wǎng)絡(luò)的集中計(jì)算逐漸被分布式計(jì)算所代替。Web 技術(shù)是一種分布式計(jì)算技術(shù),使用這種技術(shù)構(gòu)建企業(yè)應(yīng)用時(shí),通常需要開發(fā)大量的程序,這些程序部署在不同的計(jì)算機(jī)上,它們?cè)趹?yīng)用中承擔(dān)不同的職責(zé)。例如,根據(jù)功能不同可以分為用戶界面展示、邏輯計(jì)算、數(shù)據(jù)處理。其中用戶界面展示一般由動(dòng)態(tài)網(wǎng)頁完成。JSP技術(shù)就是一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁HTML 文件中插入Java 程序段和JSP 標(biāo)記,從而形成JSP 文件。而邏輯計(jì)算和數(shù)據(jù)處理則是在后臺(tái)由Java 程序?qū)懗傻墓δ艽a來完成,這些獨(dú)立代碼模塊就是servlet,運(yùn)行在服務(wù)器上。同時(shí)又經(jīng)常用JavaBean 來封裝事務(wù)邏輯。這樣可以實(shí)現(xiàn)前臺(tái)展示、業(yè)務(wù)邏輯、數(shù)據(jù)庫操作三者的分離,使系統(tǒng)變得健壯和靈活。而初學(xué)者常面對(duì)的問題就是不知道如何理解servlet 與JavaBean 二者的區(qū)別。本文就從多個(gè)方面來闡述說明二者的用法。

        1 servlet

        1.1 概念

        Servlet 實(shí)際上是Server+Applet 的意思,全稱Java Servlet。是用Java 編寫的服務(wù)器端程序。狹義的Servlet 是指Java 語言實(shí)現(xiàn)的一個(gè)接口,廣義的Servlet 是指任何實(shí)現(xiàn)了這個(gè)Servlet 接口的類,一般情況下,人們將Servlet 理解為后者。

        Servlet 運(yùn)行于支持Java 的應(yīng)用服務(wù)器中。從實(shí)現(xiàn)上講,Servlet 可以響應(yīng)任何類型的請(qǐng)求,但絕大多數(shù)情況下Servlet 只用來擴(kuò)展基于HTTP 協(xié)議的Web 服務(wù)器。最早支持Servlet 技術(shù)的是JavaSoft 的Java Web Server。此后,一些其它的基于Java 的Web Server 開始支持標(biāo)準(zhǔn)的Servlet API。Servlet 的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web 內(nèi)容。實(shí)現(xiàn)過程如下:

        1)客戶端發(fā)送請(qǐng)求至服務(wù)器端;

        2)服務(wù)器將請(qǐng)求信息發(fā)送至Servlet;

        3)Servlet 生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求;

        4)服務(wù)器將響應(yīng)返回給客戶端。

        1.2 生命周期

        每個(gè)servlet 模塊有其生命周期。一般過程如下:

        1)客戶端請(qǐng)求該Servlet;

        2)加載Servlet 類到內(nèi)存;

        3)實(shí)例化并調(diào)用init()方法初始化該Servlet;

        4)service()(根據(jù)請(qǐng)求方法不同調(diào)用doGet()或者doPost(),此外還有doGet()、doPut()、doTrace()、doDelete()、doOptions());

        5)destroy()。

        在這個(gè)過程中,加載和實(shí)例化Servlet 這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,Server 通常會(huì)提供一個(gè)管理的選項(xiàng),用于在Server 啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的Servlet。第一個(gè)客戶端的請(qǐng)求到達(dá)Server,Server 調(diào)用Servlet 的init()方法(可配置為Server 創(chuàng)建Servlet 實(shí)例時(shí)調(diào)用,在web.xml 中<servlet>標(biāo)簽下配置<load-on-startup>標(biāo)簽,配置的值為整型,值越小Servlet 的啟動(dòng)優(yōu)先級(jí)越高)。之后Server 創(chuàng)建一個(gè)請(qǐng)求對(duì)象,處理客戶端請(qǐng)求,再創(chuàng)建一個(gè)響應(yīng)對(duì)象,響應(yīng)客戶端請(qǐng)求。

        Servlet 的service()方法很重要,它將傳遞請(qǐng)求和響應(yīng)對(duì)象作為參數(shù),獲得關(guān)于請(qǐng)求對(duì)象的信息,處理請(qǐng)求,訪問其他資源,獲得需要的信息。它使用響應(yīng)對(duì)象的方法,將響應(yīng)傳回Server,最終到達(dá)客戶端。service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開發(fā)的新的方法。

        對(duì)于更多的客戶端請(qǐng)求,Server 創(chuàng)建新的請(qǐng)求和響應(yīng)對(duì)象,仍然激活此Servlet 的service()方法,將這兩個(gè)對(duì)象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無需再次調(diào)用init()方法。一般Servlet 只初始化一次(只有一個(gè)對(duì)象),當(dāng)Server 不再需要Servlet 時(shí)(一般當(dāng)Server關(guān)閉時(shí)),Server 調(diào)用Servlet 的destroy()方法。

        我們可以在eclipse 等開發(fā)平臺(tái)中直接創(chuàng)建web 工程,平臺(tái)工具可以自動(dòng)對(duì)項(xiàng)目進(jìn)行組織和部署。Servlet 和頁面文件分開存儲(chǔ),使項(xiàng)目結(jié)構(gòu)清晰,也實(shí)現(xiàn)了軟件分層架構(gòu)模型。

        1.3 servlet 優(yōu)勢(shì)

        1)方便

        Servlet 提供了大量的實(shí)用工具例程,例如自動(dòng)地解析和解碼HTML 表單數(shù)據(jù)、讀取和設(shè)置HTTP 頭、處理Cookie、跟蹤會(huì)話狀態(tài)等。

        2)功能強(qiáng)大

        在Servlet 中,許多使用傳統(tǒng)CGI 程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet 能夠直接和Web 服務(wù)器交互,而普通的CGI程序不能。Servlet 還能夠在各個(gè)程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實(shí)現(xiàn)。

        3)可移植性好

        Servlet 用Java 編寫,Servlet API 具有完善的標(biāo)準(zhǔn)。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet。

        2 JavaBean

        2.1 概念

        JavaBean 是使用Java 語言描述的軟件組件模型,簡(jiǎn)單地說,它就是一個(gè)可以重復(fù)使用的Java 類。JavaBean 可分為可視化組件和非可視化組件,其中可視化組件包括簡(jiǎn)單的GUI 元素(例如,文本框、按鈕)及一些報(bào)表組件等。非可視化組件是在實(shí)際開發(fā)中經(jīng)常被使用到的并且在應(yīng)用程序中起著至關(guān)重要的作用。其主要功能是用來封裝業(yè)務(wù)邏輯(功能實(shí)現(xiàn))、數(shù)據(jù)庫操作(例如,數(shù)據(jù)處理、連接數(shù)據(jù)庫)等。

        在實(shí)際的開發(fā)過程中,通常會(huì)出現(xiàn)重復(fù)的代碼或者段落,此時(shí)就會(huì)大大降低程序的可重用性并且浪費(fèi)時(shí)間。使用JavaBean 就可以大大簡(jiǎn)化程序的設(shè)計(jì)過程并且方便了其它程序的重復(fù)使用。JavaBean 在服務(wù)器端的應(yīng)用具有非常強(qiáng)大的優(yōu)勢(shì),非可視化的JavaBean 可以非常好地實(shí)現(xiàn)控制邏輯、業(yè)務(wù)邏輯、表示層之間的分離,從而大大降低了它們之間的耦合度。非可視化的JavaBean 現(xiàn)在多用于后臺(tái)處理,這樣會(huì)使系統(tǒng)具有一定的靈活性。

        2.2 JavaBean 規(guī)范

        編寫JavaBean 就是編寫一個(gè)Java 的類,這個(gè)類創(chuàng)建的一個(gè)對(duì)象稱作一個(gè)Bean。為了能讓使用這個(gè)bean 的應(yīng)用程序構(gòu)建工具(比如JSP 引擎)知道這個(gè)bean 的屬性和方法,只需在類的方法命名上遵守以下規(guī)則:

        1)如果類的成員變量的名字是xxx,那么為了更改或獲取成員變量的值,即更改或獲取屬性,在類中可以使用兩個(gè)方法:

        ◆getXXX():用來獲取屬性xxx。

        ◆setXXX():用來修改屬性xxx.。

        2)對(duì)于boolean 類型的成員變量,即布爾邏輯類型的屬性,允許使用"is“代替上面的"get"和"set"。

        3)類中方法的訪問屬性都必須是public 的。4)類中包含公共無參構(gòu)造方法

        3 servlet 與JavaBean 的區(qū)別

        Servlet 和JavaBean 都是用Java 語言寫的程序模塊,在服務(wù)器運(yùn)行,但二者的實(shí)際意義和使用層面是不同的。JavaBean是一個(gè)普通的Java 類,里面為屬性增加了getter 和setter 進(jìn)行封裝并提供默認(rèn)構(gòu)造。而Servlet 應(yīng)當(dāng)只在展示層存在。在一個(gè)完整MVC 模式 中,JavaBean、servlet、JSP分別對(duì)應(yīng)M(model)、C(controller)、V(view)三個(gè)層面。舉例:servlet 查詢數(shù)據(jù)庫——JavaBean 保存查詢結(jié)果——JSP 顯示查詢結(jié)果。

        Servlet 是只能在JavaEE 容器中存活的特殊Java 類,就像是魚缸里的魚,沒有容器Servlet 是不能生存的。而JavaBean 則可以脫離JavaEE 環(huán)境單獨(dú)存在,按照Sun 公司的說法,既可以用在客戶端,也可以用在服務(wù)器端。另外,根據(jù)上文對(duì)于二者規(guī)范的說明,也可以明顯看出,二者在程序語句方面的規(guī)范與實(shí)現(xiàn)的接口有很大區(qū)別。Servlet需要生命周期框架,而JavaBean 并不需要。

        4 結(jié)束語

        Servlet 與JavaBean 是JSP 技術(shù)乃至J2EE 平臺(tái)中很常用的技術(shù)。掌握二者的編程規(guī)范、工作層面和區(qū)別,才能編寫出功能明確、結(jié)構(gòu)正確的web 項(xiàng)目。

        [1]王先國(guó).JSP 基礎(chǔ)與編程實(shí)踐[M].清華大學(xué)出版社,2012,1.

        [2]李迎秋.JSP 實(shí)用教程[M].大連理工大學(xué)出版社,2008.2.

        [3]javaBean 和Servlet 的 區(qū) 別.http://blog.sina.com.cn/s/blog_71c1942e01013gsb.html[OL].

        猜你喜歡
        服務(wù)器端客戶端組件
        無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
        能源工程(2022年2期)2022-05-23 13:51:50
        新型碎邊剪刀盤組件
        U盾外殼組件注塑模具設(shè)計(jì)
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        在Windows中安裝OpenVPN
        風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
        太陽能(2015年11期)2015-04-10 12:53:04
        客戶端空間數(shù)據(jù)緩存策略
        黄色三级一区二区三区| 欧洲成人午夜精品无码区久久| 亚洲天堂在线播放| 日本一区二区国产高清在线播放| 99久久精品国产91| 免费无遮挡无码永久视频| 久久精品视频在线看99| 精品久久久久久午夜| 九一精品少妇一区二区三区| 内射干少妇亚洲69xxx| 欧美性猛交xxxx黑人猛交| 天啦噜国产精品亚洲精品| 久久成人永久婷婷99精品| 亚洲人成网线在线播放va蜜芽| 国产精品久久久久国产a级| 四虎国产精品成人影院| 国产精品国产三级国产剧情| 又粗又黄又猛又爽大片免费| 真正免费一级毛片在线播放| 国产成人夜色在线视频观看| 国产一区二区三区在线观看完整版| 免费人成再在线观看视频| 国产精品视频一区日韩丝袜| 在线观看av不卡 一区二区三区| 小说区激情另类春色| 国产乱子伦精品免费无码专区 | 国产精品特级毛片一区二区三区| 精品一区二区三区在线观看| 日本亚洲一级中文字幕| 在线视频中文字幕一区二区三区| 九一九色国产| 国产一区二区三区4区| 无色码中文字幕一本久道久| av鲁丝一区鲁丝二区鲁丝三区| 99热在线精品播放| 亚洲码无人客一区二区三区| 国产午夜片无码区在线播放| 欧美日韩精品一区二区在线视频 | 久久国产精品色av免费看| 无码一区二区三区免费视频| 久久99欧美|