• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      劉曉崢

      (長江工程職業(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ī)上,它們在應(yīng)用中承擔(dān)不同的職責(zé)。例如,根據(jù)功能不同可以分為用戶界面展示、邏輯計(jì)算、數(shù)據(jù)處理。其中用戶界面展示一般由動態(tài)網(wǎng)頁完成。JSP技術(shù)就是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁HTML 文件中插入Java 程序段和JSP 標(biāo)記,從而形成JSP 文件。而邏輯計(jì)算和數(shù)據(jù)處理則是在后臺由Java 程序?qū)懗傻墓δ艽a來完成,這些獨(dú)立代碼模塊就是servlet,運(yùn)行在服務(wù)器上。同時(shí)又經(jīng)常用JavaBean 來封裝事務(wù)邏輯。這樣可以實(shí)現(xiàn)前臺展示、業(yè)務(wù)邏輯、數(shù)據(jù)庫操作三者的分離,使系統(tǒng)變得健壯和靈活。而初學(xué)者常面對的問題就是不知道如何理解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)任何類型的請求,但絕大多數(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ù),生成動態(tài)Web 內(nèi)容。實(shí)現(xiàn)過程如下:

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

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

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

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

      1.2 生命周期

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

      1)客戶端請求該Servlet;

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

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

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

      5)destroy()。

      在這個(gè)過程中,加載和實(shí)例化Servlet 這項(xiàng)操作一般是動態(tài)執(zhí)行的。然而,Server 通常會提供一個(gè)管理的選項(xiàng),用于在Server 啟動時(shí)強(qiáng)制裝載和初始化特定的Servlet。第一個(gè)客戶端的請求到達(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 的啟動優(yōu)先級越高)。之后Server 創(chuàng)建一個(gè)請求對象,處理客戶端請求,再創(chuàng)建一個(gè)響應(yīng)對象,響應(yīng)客戶端請求。

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

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

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

      1.3 servlet 優(yōu)勢

      1)方便

      Servlet 提供了大量的實(shí)用工具例程,例如自動地解析和解碼HTML 表單數(shù)據(jù)、讀取和設(shè)置HTTP 頭、處理Cookie、跟蹤會話狀態(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 語言描述的軟件組件模型,簡單地說,它就是一個(gè)可以重復(fù)使用的Java 類。JavaBean 可分為可視化組件和非可視化組件,其中可視化組件包括簡單的GUI 元素(例如,文本框、按鈕)及一些報(bào)表組件等。非可視化組件是在實(shí)際開發(fā)中經(jīng)常被使用到的并且在應(yīng)用程序中起著至關(guān)重要的作用。其主要功能是用來封裝業(yè)務(wù)邏輯(功能實(shí)現(xiàn))、數(shù)據(jù)庫操作(例如,數(shù)據(jù)處理、連接數(shù)據(jù)庫)等。

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

      2.2 JavaBean 規(guī)范

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

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

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

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

      2)對于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分別對應(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ù)上文對于二者規(guī)范的說明,也可以明顯看出,二者在程序語句方面的規(guī)范與實(shí)現(xiàn)的接口有很大區(qū)別。Servlet需要生命周期框架,而JavaBean 并不需要。

      4 結(jié)束語

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

      [1]王先國.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ì)
      縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      淺析異步通信層的架構(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ù)緩存策略
      梓潼县| 彭州市| 黑水县| 金华市| 绥芬河市| 威信县| 巢湖市| 霍州市| 博乐市| 丹寨县| 内丘县| 龙南县| 东兴市| 城步| 莱州市| 永仁县| 高阳县| 东海县| 修武县| 昆山市| 获嘉县| 金门县| 永州市| 象山县| 宜阳县| 柳林县| 清水河县| 临沭县| 黔西| 怀柔区| 正定县| 清原| 贞丰县| 平舆县| 报价| 弥渡县| 桃园市| 永靖县| 新丰县| 武邑县| 安龙县|