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