日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Servlet入门总结

發布時間:2025/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Servlet入门总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 一、了解Servlet的概念

    ??????? Servlet定義:Servlet是基于Java技術的Web組件,由容器管理并產生動態的內容。Servlet引擎作為WEB服務器的擴展提供支持Servlet的功能。Servlet與客戶端通過Servlet容器實現的請求/響應模型進行交互。

    注意:Servlet不是從命令行啟動的,而是由包含Java虛擬機的Web服務器進行加載

    1)Servlet是按照Servlet規范編寫的Java類。

    2)Servlet應用請求/響應模型,擴展了服務器的功能。

    Servlet是WEB應用程序中的一個組件。

    ??????? Servlet是在JSP之前就存在的運行在服務端的一種Java技術,它是用Java語言編寫的服務器端程序在JSP技術出現之前,Servlet被廣泛地應用來開發動態的Web應用程序

    .如今在J2EE項目的開發中,Servlet仍然被廣泛的使用。

    ?????? Servlet是一種獨立于平臺和協議的服務器端的Java技術,可以用來生成動態的Web頁面與傳統的CGI(公共網關接口)和許多其他類似CGI技術相比,Servlet具有更好的可移植性、更強大的功能,更少的投資,更高的效率,更好的安全性等特點



    二、Servlet技術功能

    ?????? Servlet通過創建一個框架來擴展服務器的能力,以提供在Web上進行請求和響應的服務。當客戶機發送請求至服務器時,服務器可以將請求信息發送給Servlet,并讓Servlet建立起服務器返回給客戶機的響應

    當啟動Web服務器或客戶機第一次請求服務時,可以自動裝入Servlet,之后,Servlet繼續運行直到其他客戶機發出請求。Servlet的功能涉及范圍很廣

    (1)創建并返回一個包含基于客戶請求性質的動態內容的完整的HTML頁面;

    (2)創建可嵌入到現有HTML頁面中的一部分HTML頁面(HTML片段);

    (3)與其他服務器資源(包括數據庫和基于Java的應用程序)進行通信;

    (4)用多個客戶機處理連接,接收多個客戶機的輸入,并將結果傳遞到多個客戶機上,例如,Servlet可以是多參與者的游戲服務器;

    (5)當允許在單連接方式下傳送數據的情況下,在瀏覽器上打開服務器至applet的新連接,并將該連接保持在打開狀態;當允許客戶機和服務器簡單、高效地執行會話的情況下,applet也可以啟動客戶瀏覽器和服務器之間的連接,可以通過定制協議進行通信;

    (6)將訂制的處理提供給所有服務器的標準程序。


    三、 Servlet技術特點

    Servlet技術帶給程序員最大的優勢是它可以處理客戶端傳來的HTTP請求,并返回一個響應

    Servlet是一個Java類,Java語言能夠實現的功能,Servlet基本上都可以實現(圖形界面除外)。總的來說,Servlet技術具有以下特點

    1.高效。在服務器上僅有一個Java虛擬機在運行,它的優勢在于當多個來自客戶端的請求進行訪問時,Servlet為每個請求分配一個線程而不是進程。

    2.方便。Servlet提供了大量的實用工具例程,例如處理很難完成的HTML表單數據、讀取和設置HTTP頭、處理Cookie和跟蹤會話等。

    3.跨平臺。Servlet是用Java類編寫的,它可以在不同的操作系統平臺和不同的應用服務器平臺下運行。

    4.靈活性和可擴展性。采用Servlet開發的Web應用程序,由于Java類的繼承性、構造函數等特點,使得其應用靈活,可隨意擴展。

    6.共享數據。Servlet之間通過共享數據可以很容易地實現數據庫連接池。它能方便地實現管理用戶請求,簡化Session和獲取前一頁面信息的操作。而在CGI之間通信則很差。由于每個CGI程序的調用都開始一個新的進程,調用間通信通常要通過文件進行,因而相當緩慢。同一臺服務器上的不同CGI程序之間的通信也相當麻煩。

    7.安全。有些CGI版本有明顯的安全弱點。即使是使用最新的標準和PERL等語言,系統也沒有基本安全框架。而Java定義有完整的安全機制,包括SSL\CA認證、安全政策等規范。


    四、 Servlet生命周期


    跟客戶端的Applet相似,Servlet(這里Servlet的概念又回到了最原始的含義)也遵循嚴格的生命周期。在每個Servlet實例的生命中有三種類型的事件,這三種事件分別對應于由Servlet引擎所喚醒的三個方法:


      1.init()。當Servlet第一次被裝載時, Servlet引擎調用這個Servlet的init()方法,只調用一次 。如果某個Sevlet需要特殊的初始化需要。那么Servlet編寫人員可以重寫該方法來執行初始化任務。這是一個可選的方法。如果某個Servlet不需要初始化,那么默認情況下將調用它父類的init方法。系統保證, 在init方法成功完成以前,是不會調用Servlet去處理任何請求的
      2.service()。這是Servlet最重要的方法,是
    真正處理請求的地方 。對于每個請求,Servlet引擎將調用Servlet的service方法, 并把Servlet請求對象和Servlet響應對象作為參數傳遞給它。
      3.destroy()。這是相對于init的可選方法,當Servlet即將被卸載時由Servlet引擎來調用,這個方法用來清除并釋放在init方法中所分配的資源

    Servlet的生命周期可以被歸納為以下幾步:
      (1) 裝載Servlet,這一項操作一般是動態執行的。然而,Servlet通常會提供一個管理的選項,用于在Servlet啟動時強制裝載和初始化特定的Servlet
      (2) Server創建一個Servlet實例

      (3) Server調用Servlet的init方法


      (4) 一個客戶端請求到達Server
      (5) Server創建一個請求對象

      (6) Server創建一個響應對象


      (7) Server激活Servlet的service方法,傳遞請求和響應對象作為參數
      (8) service方法獲得關于請求對象的信息,處理請求,訪問其他資源,獲得需要的信息
      (9) service方法使用響應對象的方法。將響應傳回Server,最終到達客戶端。Service方法可能激活其他方法以處理請求。如doGet,doPost或其他程序員自己開發的方法
      (10) 對于更多的客戶端請求,Server創建新的請求和響應對象,仍然激活此servlet的service方法,將這兩個對象作為參數傳遞給它,如此重復以上的循環,但無需再次調用init方法,Servlet一般只初始化一次
      (11) 當Server不再需要Servlet時,比如當Server要關閉時,Server調用Servlet的destroy



    五、servlet工作過程

    Web服務器在與客戶端交互時.Servlet的工作過程是:

    1.?????在客戶端對web服務器發出請求

    2.???? web服務器接收到請求后將其發送給Servlet

    3.???? Servlet容器為此產生一個實例對象并調用ServletAPI中相應的方法來對客戶端HTTP請求進行處理,然后將處理的響應結果返回給WEB服務器.

    4.???? web服務器將從Servlet實例對象中收到的響應結構發送回客戶端.




    六 、Servlet與JSP區別

    ??????? 簡單的說,SUN首先發展出SERVLET,其功能比較強勁,體系設計也很先進,只是,它輸出HTML語句還是采用了老的CGI方式,是一句一句輸出,所以,編寫和修改HTML非常不方便。 后來SUN推出了類似于ASP的鑲嵌型的JSP,把JSP TAG鑲嵌到HTML語句中,這樣,就大大簡化和方便了網頁的設計和修改。新型的網絡語言如ASP,PHP,JSP都是鑲嵌型的SCRIPT語言。

    1、JSP在本質上就是SERVLET,但是兩者的創建方式不一樣.

    2、Servlet完全是JAVA程序代碼構成,擅長于流程控制和事務處理,通過Servlet來生成動態網頁很不直觀.

    3、JSP由HTML代碼和JSP標簽構成,可以方便地編寫動態網頁.

    ????? 因此在實際應用中采用Servlet來控制業務流程,而采用JSP來生成動態網頁.在struts框架中,JSP位于MVC設計模式的視圖層,而Servlet位于控制層.

    1、JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。

    2、JSP編譯后是“類servlet”。

    3、Servlet和JSP最主要的不同點在于,Servlet的應用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP是Java和HTML組合成一個擴展名為.jsp的文件。

    4、JSP側重于視圖,Servlet主要用于控制邏輯

    七、Servlet代碼結構

    ??????? 該Servlet處理的是get請求,如果讀者不理解HTTP,可以把它看成是當用戶在瀏覽器地址欄輸入URL、單擊Web頁面中的鏈接、提交沒有指定method的表單時瀏覽器所發出的請求

    ??????? Servlet也可以很方便地處理post請求。post請求是提交那些指定了method=“post”的表單時所發出的請求。若要創建一個Servlet,則應使創建的類繼承HttpServlet類,并覆蓋doGet()、doPost()方法之一或全部。doGet()和doPost()方法都有兩個參數,分別為HttpServletRequest類型和HttpServletResponse類型


    ???????? HttpServletRequest提供訪問有關請求的信息的方法,例如表單數據、HTTP請求頭等。HttpServletResponse除了提供用于指定HTTP應答狀態(200,404等)、應答頭(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一個用于向客戶端發送數據的PrintWriter

    ???????? 對于簡單的Servlet來說,它的大部分工作是通過println()方法生成向客戶端發送的頁面

    ???????? 注意:doGet()方法和doPost()方法拋出兩個異常,因此必須在聲明中包含它們。另外還必須導入java.io包(要用到PrintWriter等類)、javax.servlet包(要用到HttpServlet等類)以及javax.servlet.http包要用到(HttpServlet Request類和HttpServletResponse類)。doGet()和doPost()這兩個方法是由service()方法調用的,有時可能需要直接覆蓋service()方法,比如Servlet要處理Get和Post兩種請求時

    ??????? 如果要開發一個可以處理HTTP請求的Servlet程序,則肯定要繼承HttpServlet類,而且在自定義的Servlet類中還要重寫HttpServlet類中提供的doGet()方法。Servlet程序本身也是按照請求和應答的方式進行的,所以在doGet()方法中定義了兩個參數,即HttpServletRequest和HttpServletResponse,用來接收和回應用戶的請求.



    出處:http://blog.csdn.net/evankaka

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的Servlet入门总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。