成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是Servlet以及常用Servlet API有哪些

開發
什么是Servlet以及常用Servlet API有哪些呢?對于從事Java開發和JSP開發的程序員,對于Servlet以及Servlet API并不陌生,那么本文將會是一介紹總結性的給你展示。

什么是Servlet呢?什么又是Servlet API呢?讓我們開始課程。

1.什么是Servlet ?

Servlet是使用Java Servlet 應用程序設計接口(API)及相關類和方法的 Java 程序。除了 Java Servlet API,Servlet 還可以使用用以擴展和添加到 API 的 Java 類軟件包。Servlet 在啟用 Java 的 Web 服務器上或應用服務器上運行并擴展了該服務器的能力。Java Servlet對于Web服務器就好象Java applet對于Web瀏覽器。Servlet裝入Web服務器并在Web服務器內執行,而applet裝入Web瀏覽器并在Web瀏覽器內執行。Java Servlet API 定義了一個Servlet 和Java使能的服務器之間的一個標準接口,這使得Servlets具有跨服務器平臺的特性。

Servlet 通過創建一個框架來擴展服務器的能力,以提供在 Web 上進行請求和響應服務。當客戶機發送請求至服務器時,服務器可以將請求信息發送給 Servlet,并讓 Servlet 建立起服務器返回給客戶機的響應。 當啟動 Web 服務器或客戶機***次請求服務時,可以自動裝入 Servlet。裝入后, Servlet 繼續運行直到其它客戶機發出請求。Servlet 的功能涉及范圍很廣。例如,Servlet 可完成如下功能:

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

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

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

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

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

(6) 對特殊的處理采用 MIME 類型過濾數據,例如圖像轉換和服務器端包括(SSI)。

(7) 將定制的處理提供給所有服務器的標準例行程序。例如,Servlet 可以修改如何認證用戶。

2.什么是Servlet的生命周期

Servlet的生命周期始于將它裝入 Web 服務器的內存時,并在終止或重新裝入 Servlet 時結束。

(1) 初始化

在下列時刻裝入 Servlet:

◆如果已配置自動裝入選項,則在啟動服務器時自動裝入

◆在服務器啟動后,客戶機***向 Servlet 發出請求時

◆重新裝入 Servlet 時裝入 Servlet 后,服務器創建一個 Servlet 實例并且調用 Servlet 的 init() 方法。在初始化階段,Servlet 初始化參數被傳遞給 Servlet 配置對象。

(2) 請求處理

對于到達服務器的客戶機請求,服務器創建特定于請求的一個“請求”對象和一個“響應”對象。服務器調用 Servlet 的 service() 方法,該方法用于傳遞“請求”和“響應”對象。service() 方法從“請求”對象獲得請求信息、處理該請求并用“響應”對象的方法以將響應傳回客戶機。service() 方法可以調用其它方法來處理請求,例如 doGet()、doPost() 或其它的方法。

(3) 終止

當服務器不再需要 Servlet, 或重新裝入 Servlet 的新實例時,服務器會調用 Servlet 的 destroy() 方法。

3. 什么是Servlet API

Java Servlet 開發工具(JSDK)提供了多個軟件包,在編寫 Servlet 時需要用到這些軟件包。其中包括兩個用于所有 Servlet 的基本軟件包:javax.Servlet 和 javax.Servlet.http??蓮膕un公司的Web站點下載 Java Servlet 開發工具。 下面主要介紹javax.Servlet.http提供的HTTP Servlet應用編程接口。

HTTP Servlet 使用一個 HTML 表格來發送和接收數據。要創建一個 HTTP Servlet,請擴展 HttpServlet 類,該類是用專門的方法來處理 HTML 表格的 GenericServlet 的一個子類。 HTML 表單是由

標記定義的。表單中典型地包含輸入字段(如文本輸入字段、復選框、單選按鈕和選擇列表)和用于提交數據的按鈕。當提交信息時,它們還指定服務器應執行哪一個Servlet(或其它的程序)。 HttpServlet 類包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是繼承的。

(1)Servlet API之init() 方法

在 Servlet 的生命期中,僅執行一次 init() 方法。它是在服務器裝入 Servlet 時執行的。 可以配置服務器,以在啟動服務器或客戶機***訪問 Servlet 時裝入 Servlet。 無論有多少客戶機訪問 Servlet,都不會重復執行 init() 。

缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法來覆蓋它,典型的是管理服務器端資源。 例如,可能編寫一個定制 init() 來只用于一次裝入 GIF 圖像,改進 Servlet 返回 GIF 圖像和含有多個客戶機請求的性能。另一個示例是初始化數據庫連接。缺省的 init() 方法設置了 Servlet 的初始化參數,并用它的 ServletConfig 對象參數來啟動配置, 因此所有覆蓋 init() 方法的 Servlet 應調用 super.init() 以確保仍然執行這些任務。在調用 service() 方法之前,應確保已完成了 init() 方法。

(2) Servlet API之service() 方法

service() 方法是 Servlet 的核心。每當一個客戶請求一個HttpServlet 對象,該對象的service() 方法就要被調用,而且傳遞給這個方法一個“請求”(ServletRequest)對象和一個“響應”(ServletResponse)對象作為參數。 在 HttpServlet 中已存在 service() 方法。缺省的服務功能是調用與 HTTP 請求的方法相應的 do 功能。例如, 如果 HTTP 請求方法為 GET,則缺省情況下就調用 doGet() 。Servlet 應該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因為 HttpServlet.service() 方法會檢查請求方法是否調用了適當的處理方法,不必要覆蓋 service() 方法。只需覆蓋相應的 do 方法就可以了。

◆當一個客戶通過HTML 表單發出一個HTTP POST請求時,doPost()方法被調用。與POST請求相關的參數作為一個單獨的HTTP 請求從瀏覽器發送到服務器。當需要修改服務器端的數據時,應該使用doPost()方法。

◆當一個客戶通過HTML 表單發出一個HTTP GET請求或直接請求一個URL時,doGet()方法被調用。與GET請求相關的參數添加到URL的后面,并與這個請求一起發送。當不會修改服務器端的數據時,應該使用doGet()方法。

Servlet的響應可以是下列幾種類型:

◆一個輸出流,瀏覽器根據它的內容類型(如text/HTML)進行解釋。

◆一個HTTP錯誤響應, 重定向到另一個URL、Servlet、JSP。

(3)Servlet API之destroy() 方法

destroy() 方法僅執行一次,即在服務器停止且卸裝Servlet 時執行該方法。典型的,將 Servlet 作為服務器進程的一部分來關閉。缺省的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理服務器端資源。例如,如果 Servlet 在運行時會累計統計數據,則可以編寫一個 destroy() 方法,該方法用于在未裝入 Servlet 時將統計數字保存在文件中。另一個示例是關閉數據庫連接。

當服務器卸裝 Servlet 時,將在所有 service() 方法調用完成后,或在指定的時間間隔過后調用 destroy() 方法。一個Servlet 在運行service() 方法時可能會產生其它的線程,因此請確認在調用 destroy() 方法時,這些線程已終止或完成。

(4)Servlet API之GetServletConfig()方法

GetServletConfig()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數和ServletContext。ServletContext 接口提供有關Servlet 的環境信息。

(5)Servlet API之GetServletInfo()方法

GetServletInfo()方法是一個可選的方法,它提供有關Servlet 的信息,如作者、版本、版權。

當服務器調用sevlet 的Service()、doGet()和doPost()這三個方法時,均需要 “請求”和“響應”對象作為參數?!罢埱蟆睂ο筇峁┯嘘P請求的信息,而“響應”對象提供了一個將響應信息返回給瀏覽器的一個通信途徑。javax.Servlet 軟件包中的相關類為ServletResponse和ServletRequest,而javax.Servlet.http 軟件包中的相關類為HttpServletRequest 和 HttpServletResponse。Servlet 通過這些對象與服務器通信并最終與客戶機通信。Servlet 能通過調用“請求”對象的方法獲知客戶機環境,服務器環境的信息和所有由客戶機提供的信息。Servlet 可以調用“響應”對象的方法發送響應,該響應是準備發回客戶機的。

以上就是什么是Servlet,以及基本常用Servlet API方法有哪些,希望通過介紹對此你有所了解。

【編輯推薦】

  1. 選擇JSP開發工具
  2. Servlet和JSP路徑詳細介紹
  3. Tomcat下JSP、Servlet和Bean的配置
  4. 如何提升Servlet和JSP應用程序的效率
  5. JSP和Servlet中的幾個編碼的作用及原理
責任編輯:仲衡 來源: 上??萍?/span>
相關推薦

2009-07-02 09:13:25

什么是JSPServlet

2009-07-08 11:37:32

Servlet API

2020-07-21 14:35:44

Servlet容器ApacheTomcat

2025-01-15 09:06:57

servlet服務器Java

2009-07-07 14:04:55

JSP入門

2009-07-08 10:02:41

Servlet 3.0

2009-07-07 15:12:06

Servlet API

2009-07-03 13:49:23

Servlet API

2009-07-09 17:47:35

Java Servle

2009-07-06 14:05:50

Servlet編程Servlet顯示圖片

2009-07-08 15:30:56

Servlet過濾器

2009-07-08 09:35:53

Java ServleServlet 3.0

2019-12-09 15:00:48

TomcatServlet容器

2013-09-02 09:18:59

2009-07-06 13:48:53

Servlet監聽器

2012-06-13 02:02:43

ServletJavaJSP

2009-07-09 11:27:59

Servlet容器

2009-07-09 15:05:45

Servlet實例

2019-09-09 10:09:51

分布式事務 數據庫

2009-07-06 15:47:11

Servlet API
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久久久久久 | 亚洲精选一区二区 | 亚洲精品久久久蜜桃网站 | 伊人网影院 | 久久久久久久久精 | 久久国产成人精品国产成人亚洲 | 91视频在线观看免费 | 日韩欧美成人一区二区三区 | 黄色一级电影免费观看 | 久久夜视频 | 国产一区在线视频 | 午夜码电影 | 亚洲狠狠 | 成人精品一区二区 | 91资源在线 | 精品国产一区二区三区久久狼黑人 | 成人高清在线视频 | 成人免费一区二区三区视频网站 | 久久婷婷麻豆国产91天堂 | 91成人影院| 雨宫琴音一区二区在线 | 久久国产成人 | 日本精品一区二区三区视频 | 日韩在线观看一区 | 无码一区二区三区视频 | 成人午夜免费在线视频 | 国产伦精品一区二区三区高清 | 黄色免费在线观看网站 | 中文在线一区 | 亚洲女优在线播放 | 91精品国产综合久久婷婷香蕉 | 一区日韩 | 成人在线视频一区 | 天天综合永久 | 亚洲欧美日韩网站 | 亚洲欧美中文日韩在线v日本 | 99pao成人国产永久免费视频 | 亚洲一二三在线 | 国产精品久久久久久久久动漫 | 久久九精品 | 欧美日韩一区在线观看 |