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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于Servlet的原理以及常用类

發布時間:2025/3/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Servlet的原理以及常用类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Servlet是JavaWeb的三大組件之一,它屬于動態資源。

在Servlet中通常需要:

  接收請求數據;

  處理請求;

  完成響應。

實現Servlet有三種方式:

  實現javax.servlet.Servlet接口;

  繼承javax.servlet.GenericServlet類;

  繼承javax.servlet.http.HttpServlet類;

?

與Servlet的生命周期相關的方法有:

  void init(ServletConfig);

  void service(ServletRequest,ServletResponse);

  void destroy();

服務器會在Servlet第一次被訪問時創建Servlet,或者是在服務器啟動時創建Servlet。如果服務器啟動時就創建Servlet,那么還需要在web.xml文件中配置(<load-on-startup>0</load-on-startup>)。也就是說默認情況下,Servlet是在第一次被訪問時由服務器創建的。

?

而且一個Servlet類型,服務器只創建一個實例對象.

在Servlet被創建后,服務器會馬上調用Servlet的void init(ServletConfig)方法。請記住, Servlet出生后馬上就會調用init()方法,而且一個Servlet的一生。

當服務器每次接收到請求時,都會去調用Servlet的service()方法來處理請求。服務器接收到一次請求,就會調用service() 方法一次,所以service()方法是會被調用多次的。

?

Servlet是不會輕易離去的,通常都是在服務器關閉時Servlet才會離去!在服務器被關閉時,服務器會去銷毀Servlet,在銷毀Servlet之前服務器會先去調用Servlet的destroy()方法

?

Servlet與線程安全

因為一個類型的Servlet只有一個實例對象,那么就有可能會現時出一個Servlet同時處理多個請求,那么Servlet是否為線程安全的呢?答案是:“不是線程安全的”。這說明Servlet的工作效率很高,但也存在線程安全問題!

所以我們不應該在Servlet中便宜創建成員變量,因為可能會存在一個線程對這個成員變量進行寫操作,另一個線程對這個成員變量進行讀操作。

?

GenericServlet概述

GenericServlet是Servlet接口的實現類,我們可以通過繼承GenericServlet來編寫自己的Servlet。

?

HttpServlet類是GenericServlet的子類,它提供了對HTTP請求的特殊支持,所以通常我們都會通過繼承HttpServlet來完成自定義的Servlet。

?

HttpServlet類中提供了service(HttpServletRequest,HttpServletResponse)方法,這個方法是HttpServlet自己的方法,不是從Servlet繼承來的。

在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法會去判斷當前請求是GET還是POST,如果是GET請求,那么會去調用本類的doGet()方法,如果是POST請求會去調用doPost()方法,這說明我們在子類中去覆蓋doGet()或doPost()方法即可。

?

ServletContext

服務器會為每個應用創建一個ServletContext對象:

l? ServletContext對象的創建是在服務器啟動時完成的;

l? ServletContext對象的銷毀是在服務器關閉時完成的。

 ?ServletContext對象的作用是在整個Web應用的動態資源之間共享數據!

?

?

JSP---->Servlet---->編譯.class文件 執行.

?

擴展: 關于Session的創建和銷毀

Session:session將數據保存在服務器端.通過cookie回寫了一個JSESSIONID.

* session的創建和銷毀:

創建的時候:

服務器端第一次調用getSession()方法的時候創建的.

* 銷毀:

* 第一種:非正常關閉服務器.(正常關閉session不會銷毀---序列化.tomcat/work路徑下.)

* 第二種:默認30分鐘.tomcat/conf/web.xml中.

* 第三種:手動調用了session.invalidate();

?

?

轉載于:https://www.cnblogs.com/DreamDrive/p/4090989.html

總結

以上是生活随笔為你收集整理的关于Servlet的原理以及常用类的全部內容,希望文章能夠幫你解決所遇到的問題。

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