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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaServlet的方法、主要功能、作用?面试必备!

發布時間:2023/12/15 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaServlet的方法、主要功能、作用?面试必备! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??一、?HttpServlet 類包含 init() 、 destroy() 、 service() 等方法。其中 init() 和 destroy() 方法是繼承的。

(1) init() 方法
在 Servlet 的生命期中,僅執行一次 init() 方法。它是在服務器裝入 Servlet 時執行的。 可以配置服務器,以在啟動服務器或客戶機首次訪問 Servlet 時裝入 Servlet 。 無論有多少客戶機訪問 Servlet ,都不會重復執行 init() 。
缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法來覆蓋它,典型的是管理服務器端資源。 例如,可能編寫一個定制 init() 來只用于一次裝入 GIF 圖像,改進 Servlet 返回 GIF 圖像和含有多個客戶機請求的性能。另一個示例是初始化數據庫連接。缺省的 init() 方法設置了 Servlet 的初始化參數,并用它的 ServletConfig 對象參數來啟動配置, 因此所有覆蓋 init() 方法的 Servlet 應調用 super.init() 以確保仍然執行這些任務。在調用 service() 方法之前,應確保已完成了 init() 方法。
(2) 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) destroy() 方法
destroy() 方法僅執行一次,即在服務器停止且卸裝 Servlet 時執行該方法。典型的,將 Servlet 作為服務器進程的一部分來關閉。缺省的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理服務器端資源。例如,如果 Servlet 在運行時會累計統計數據,則可以編寫一個 destroy() 方法,該方法用于在未裝入 Servlet 時將統計數字保存在文件中。另一個示例是關閉數據庫連接。
當服務器卸裝 Servlet 時,將在所有 service() 方法調用完成后,或在指定的時間間隔過后調用 destroy() 方法。一個 Servlet 在運行 service() 方法時可能會產生其它的線程,因此請確認在調用 destroy() 方法時,這些線程已終止或完成。
(4) GetServletConfig()方法
GetServletConfig ()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數和 ServletContext 。 ServletContext 接口提供有關 servlet 的環境信息。
(5) GetServletInfo()方法
GetServletInfo ()方法是一個可選的方法,它提供有關 servlet 的信息,如作者、版本、版權。
當服務器調用 sevlet 的 Service ()、 doGet ()和 doPost ()這三個方法時,均需要 “請求”和“響應”對象作為參數。“請求”對象提供有關請求的信息,而“響應”對象提供了一個將響應信息返回給瀏覽器的一個通信途徑。 javax.servlet 軟件包中的相關類為 ServletResponse 和 ServletRequest ,而 javax.servlet.http 軟件包中的相關類為 HttpServletRequest 和 HttpServletResponse 。 Servlet 通過這些對象與服務器通信并最終與客戶機通信。 Servlet 能通過調用“請求”對象的方法獲知客戶機環境,服務器環境的信息和所有由客戶機提供的信息。 Servlet 可以調用“響應”對象的方法發送響應,該響應是準備發回客戶機的。

二、

Java Servlet的主要功能和作用是什么?

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 可以修改如何認證用戶。

?

?

?

1,什么是Servlet
2,Servlet有什么作用
3,Servlet的生命周期
4,Servlet怎么處理一個請求
5,Servlet與JSP有什么區別
6,Servlet里的cookie技術
7,Servlet里的過濾器
8,Servlet里的監聽器

?


一,什么是Servlet?


Servlet是一個Java編寫的程序,此程序是基于Http協議的,在服務器端運行的(如tomcat),

?

是按照Servlet規范編寫的一個Java類。



二,Servlet有什么作用?


主要是處理客戶端的請求并將其結果發送到客戶端。



三,Servlet的生命周期?


Servlet的生命周期是由Servlet的容器來控制的,它可以分為3個階段;初始化,運行,銷毀。

初始化階段:


1,Servlet容器加載servlet類,把servlet類的.class文件中的數據讀到內存中。


2,然后Servlet容器創建一個ServletConfig對象。ServletConfig對象包含了Servlet的初始化配置信息。


3,Servlet容器創建一個servlet對象。


4,Servlet容器調用servlet對象的init方法進行初始化。



運行階段:


當servlet容器接收到一個請求時,servlet容器會針對這個請求創建servletRequest和servletResponse對象。

?

然后調用service方法。并把這兩個參數傳遞給service方法。Service方法通過servletRequest對象獲得請求的

?

信息。并處理該請求。再通過servletResponse對象生成這個請求的響應結果。然后銷毀servletRequest和

?

servletResponse對象。我們不管這個請求是post提交的還是get提交的,最終這個請求都會由service方法來處理。

?


銷毀階段:


當Web應用被終止時,servlet容器會先調用servlet對象的destrory方法,然后再銷毀servlet對象,

?

同時也會銷毀與servlet對象相關聯的servletConfig對象。我們可以在destroy方法的實現中,釋放

?

servlet所占用的資源,如關閉數據庫連接,關閉文件輸入輸出流等。



在這里該注意的地方:


在servlet生命周期中,servlet的初始化和和銷毀階段只會發生一次,而service方法執行的次數則取決于servlet被客戶

?

端訪問的次數

?

?


四,Servlet怎么處理一個請求?


當用戶發送一個請求到某個Servlet的時候,Servlet容器會創建一個ServletRequst和ServletResponse對象。

?

在ServletRequst對象中封裝了用戶的請求信息,然后Servlet容器把ServletRequst和ServletResponse對象

?

傳給用戶所請求的Servlet,Servlet把處理好的結果寫在ServletResponse中,然后Servlet容器把響應結果傳

?

給用戶。

?


五,Servlet與JSP有什么區別?


1,jsp經編譯后就是servlet,也可以說jsp等于servlet。


2,jsp更擅長頁面(表現)。servlet更擅長邏輯編輯。 (最核心的區別)。


3,在實際應用中采用Servlet來控制業務流程,而采用JSP來生成動態網頁.在struts框架中,

?

JSP位于MVC設計模式的視圖層,而Servlet位于控制層。

?


六,Servlet里的cookie技術?


cookies是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段,是由Netscape公司開發出來的。


cookie技術的好處:


??? 1,Cookie有效期限未到時,Cookie能使用戶在不鍵入密碼和用戶名的情況下進入曾經瀏覽過的一些站點。


??? 2,Cookie能使站點跟蹤特定訪問者的訪問次數、最后訪問時間和訪問者進入站點的路徑。
????
創建一個cookie

Java代碼??
  • //里面的兩個參數分別是cookie的名和cookie的值??
  • ??
  • response.addCookie(new?Cookie("abc","10000000"));??
  • ?

    使用cookie

    Java代碼??
  • Cookie[]?cook?=request.getCookies();//用一個Cookie數組來接收??
  • ??
  • for(int?j=0;j<cook.length;j++){//通過循環來打印Cookie??
  • ??
  • ????????cook[j].getName()://取cookie的名????
  • ????????cook[j].getValue()://去cookie的值??
  • ??
  • }??
  • ?


    七,Servlet里的過濾器?


    過濾器的主要作用


    1,任何系統或網站都要判斷用戶是否登錄。


    2,網絡聊天系統或論壇,功能是過濾非法文字


    3,統一解決編碼


    (2)怎么創建一個過濾器:

    ?

    1,生成一個普通的class類,實現Filter接口(javax.servlet.Filter;)。


    2,重寫接口里面的三個方法:init,doFilter,destroy。


    3,然后在web.xml配置過濾器。



    八,Servlet里的監聽器?


    監聽器的作用:自動執行一些操作。

    三種servlet監聽器:

    ?

    對request的監聽。對session的監聽。對application的監聽。

    怎么創建一個session監聽器:


    1,生成一個普通的class類,如果是對session的監聽,則實現HttpSessionListener。


    2,然后重寫里面的五個方法:

    ?

    Java代碼??
  • public?void?sessionCreated(HttpSessionEvent?arg0)?{}?//?創建??
  • ??
  • public?void?sessionDestroyed(HttpSessionEvent?arg0)?{}?//?銷毀??
  • ??
  • public?void?attributeAdded(HttpSessionEvent?arg0)?{}?//?增加??
  • ??
  • public?void?attributeRemoved(HttpSessionEvent?arg0)?{}?//?刪除??
  • ??
  • public?void?attributeReplaced(HttpSessionEvent?arg0)?{}?//?替換??
  • ?

    ?

    http://baike.baidu.com/view/3618433.htm

    轉載于:https://blog.51cto.com/1936625305/1193882

    總結

    以上是生活随笔為你收集整理的JavaServlet的方法、主要功能、作用?面试必备!的全部內容,希望文章能夠幫你解決所遇到的問題。

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