當(dāng)前位置:
首頁 >
001 Servlet 介绍
發(fā)布時間:2025/7/14
46
豆豆
生活随笔
收集整理的這篇文章主要介紹了
001 Servlet 介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Servlet(Server Applet),全稱Java Servlet。是用Java編寫的服務(wù)器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。 Servlet運行于支持Java的應(yīng)用服務(wù)器中。從原理上講,Servlet可以響應(yīng)任何類型的請求,但絕大多數(shù)情況下Servlet只用來擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。 最早支持Servlet標(biāo)準(zhǔn)的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服務(wù)器開始支持標(biāo)準(zhǔn)的Servlet。 生命周期 客戶端請求該 Servlet; 加載 Servlet 類到內(nèi)存; 實例化并調(diào)用init()方法初始化該 Servlet; service()(根據(jù)請求方法不同調(diào)用doGet() 或者 doPost(),此外還有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy()。 加載和實例化 Servlet。這項操作一般是動態(tài)執(zhí)行的。然而,Server 通常會提供一個管理的選項,用于在 Server 啟動時強(qiáng)制裝載和初始化特定的 Servlet。 客戶端發(fā)送請求至服務(wù)器 服務(wù)器啟動并調(diào)用 Servlet,Servlet 根據(jù)客戶端請求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器 服務(wù)器將響應(yīng)返回客戶端
工作模式
與 JSP 比較
JSP 和 Servlet 的區(qū)別到底在應(yīng)用上有哪些體現(xiàn),很多人搞不清楚。簡單的說,SUN 首先發(fā)展出 Servlet,其功能比較強(qiáng)勁,體系設(shè)計也很先進(jìn),只是,它輸出 HTML 語句還是采用了老的 CGI 方式,是一句一句輸出,所以,編寫和修改 HTML 非常不方便。 Java Server Pages(JSP)是一種實現(xiàn)普通靜態(tài)HTML 和動態(tài) HTML 混合編碼的技術(shù),JSP 并沒有增加任何本質(zhì)上不能用 Servlet 實現(xiàn)的功能。但是,在 JSP 中編寫靜態(tài)HTML 更加方便,不必再用 println語 句來輸出每一行 HTML 代碼。更重要的是,借助內(nèi)容和外觀的分離,頁面制作中不同性質(zhì)的任務(wù)可以方便地分開:比如,由頁面設(shè)計者進(jìn)行?HTML設(shè)計,同時留出供 Servlet 程序員插入動態(tài)內(nèi)容的空間。 后來 SUN 推出了類似于 ASP 的鑲嵌型的 JSP,把 JSP TAG 鑲嵌到 HTML 語句中,這樣,就大大簡化和方便了網(wǎng)頁的設(shè)計和修改。新型的網(wǎng)絡(luò)語言如 ASP,PHP,JSP 都是鑲嵌型的語言。 這是 JSP 和 Servlet 區(qū)別的運作原理層面。 從網(wǎng)絡(luò)三層結(jié)構(gòu)的角度看 JSP 和 Servlet 的區(qū)別,一個網(wǎng)絡(luò)項目最少分三層:data layer(數(shù)據(jù)層),business layer(業(yè)務(wù)層),presentation layer(表現(xiàn)層)。當(dāng)然也可以更復(fù)雜。Servlet 用來寫 business layer 是很強(qiáng)大的,但是對于寫 presentation layer 就很不方便。JSP 則主要是為了方便寫 presentation layer 而設(shè)計的。當(dāng)然也可以寫 business layer。寫慣了?ASP,PHP,CGI的朋友,經(jīng)常會不自覺的把 presentation layer 和 business layer 混在一起。 根據(jù) SUN 自己的推薦,JSP中應(yīng)該僅僅存放與 presentation layer 有關(guān)的東西,也就是說,只放輸出 HTML 網(wǎng)頁的部分。而所有的數(shù)據(jù)計算,數(shù)據(jù)分析,數(shù)據(jù)庫聯(lián)結(jié)處理,統(tǒng)統(tǒng)是屬于 business layer,應(yīng)該放在 Java BEANS 中。通過 JSP 調(diào)用 Java BEANS,實現(xiàn)兩層的整合。 實際上,微軟前不久推出的 DNA 技術(shù),簡單說,就是 ASP+COM/DCOM 技術(shù)。與J SP+BEANS 完全類似,所有的 presentation layer 由 ASP 完成,所有的 business layer 由 COM/DCOM 完成。通過調(diào)用,實現(xiàn)整合。 為什么要采用這些組件技術(shù)呢?因為單純的 ASP/JSP 語言是非常低效率執(zhí)行的,如果出現(xiàn)大量用戶點擊,純 SCRIPT 語言很快就到達(dá)了他的功能上限,而組件技術(shù)就能大幅度提高功能上限,加快執(zhí)行速度。 另外一方面,純 SCRIPT 語言將 presentation layer 和 business layer 混在一起,造成修改不方便,并且代碼不能重復(fù)利用。如果想修改一個地方,經(jīng)常會牽涉到十幾頁 code,采用組件技術(shù)就只改組件就可以了。 綜上所述,Servlet 是一個早期的不完善的產(chǎn)品,寫 business layer 很好,寫 presentation layer 就很臭,并且兩層混雜。 所以,推出JSP+BEAN,用 JSP 寫 presentation layer,用 BEAN 寫 business layer。SUN 自己的意思也是將來用 JSP 替代 Servlet。這是技術(shù)更新方面 JSP 和 Servlet 的區(qū)別。 可是,這不是說,學(xué)了 Servlet 沒用,實際上,你還是應(yīng)該從 Servlet 入門,再上 JSP,再上 JSP+BEAN。 強(qiáng)調(diào)的是:學(xué)了JSP,不會用 Java BEAN 并進(jìn)行整合,等于沒學(xué)。大家多花點力氣在 JSP+BEAN 上。 我們可以看到,當(dāng) ASP+COM 和 JSP+BEAN 都采用組件技術(shù)后,所有的組件都是先進(jìn)行編譯,并駐留內(nèi)存,然后快速執(zhí)行。所以,大家經(jīng)常吹的 Servlet/JSP 先編譯駐內(nèi)存后執(zhí)行的速度優(yōu)勢就沒有了。 反之,ASP+COM+IIS+NT 緊密整合,應(yīng)該會有較大的速度優(yōu)勢呈現(xiàn)。而且,ASP+COM+IIS+NT 開發(fā)效率非常高,雖然bug 很多。 那么,為什么還用 JSP+BEAN?因為 Java 實在前途遠(yuǎn)大。微軟分拆后,操作系統(tǒng)將群雄并起,應(yīng)用軟件的開發(fā)商必定要找一個通用開發(fā)語言進(jìn)行開發(fā),Java 一統(tǒng)天下的時機(jī)就到了。如果微軟分拆順利,從中分出的應(yīng)用軟件公司將成為 Java 的新領(lǐng)導(dǎo)者。目前的 Java 大頭 SUN 和 IBM 都死氣沉沉,令人失望。希望新公司能注入新活力。不過,新公司很有可能和舊 SUN 展開 Java 標(biāo)準(zhǔn)大戰(zhàn),雙方各自制定標(biāo)準(zhǔn),影響 Java 跨平臺。 簡單分析了一下 JSP 和 Servlet 的區(qū)別和 Java Web 開發(fā)方面的發(fā)展。隨著機(jī)器速度越來越快,Java 的速度劣勢很快就可以被克服。轉(zhuǎn)載于:https://www.cnblogs.com/hxdeng/p/7102273.html
總結(jié)
以上是生活随笔為你收集整理的001 Servlet 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 之路 Day5 - 常用模
- 下一篇: [Leetcode] Remove du