Web學習日記 10 Servlet介面

2021-09-01 20:19:38 字數 1613 閱讀 5740

在上面的文章中我們是通過實現servlet介面來實現servlet中的方法的。

那我們就來了解servlet介面吧。

1,servlet的生命週期

a,servlet的出生

伺服器會在servlet第一次被訪問時建立servlet,或者是在伺服器啟動時建立servlet。如果伺服器啟動時就建立servlet,那麼還需要在web.xml檔案中配置。也就是說預設情況下,servlet是在第一次被訪問時由伺服器建立的。

而且乙個servlet型別,伺服器只建立乙個例項物件,例如在我們首次訪問http://localhost:8080/專案名稱/helloworld(之前web.mxl自定義訪問路徑)時,伺服器通過「/helloworld」找到了繫結的servlet名稱為cn.itcast.servlet.helloservlet,然後伺服器檢視這個型別的servlet是否已經建立過,如果沒有建立過,那麼伺服器才會通過反射來建立helloservlet的例項。當我們再次訪問http://localhost:8080/helloservlet/helloworld時,伺服器就不會再次建立helloservlet例項了,而是直接使用上次建立的例項。

在servlet被建立後,伺服器會馬上呼叫servlet的void init(servletconfig)方法。請記住, servlet出生後馬上就會呼叫init()方法,而且乙個servlet的一生。這個方法只會被呼叫一次。這好比小孩子出生後馬上就要去剪臍帶一樣,而且剪臍帶一生只有一次。

我們可以把一些對servlet的初始化工作放到init方法中!

b,servlet服務

當伺服器每次接收到請求時,都會去呼叫servlet的service()方法來處理請求。伺服器接收到一次請求,就會呼叫service() 方法一次,所以service()方法是會被呼叫多次的。正因為如此,所以我們才需要把處理請求的**寫到service()方法中!

c,servlet的銷毀

servlet是不會輕易被銷毀的,通常都是在伺服器關閉時servlet才會被銷毀!在伺服器被關閉時,伺服器會去銷毀servlet,在銷毀servlet之前伺服器會先去呼叫servlet的destroy()方法,我們可以把servlet的臨終遺言放到destroy()方法中,例如對某些資源的釋放等**放到destroy()方法中。

d,測試生命週期方法

修改helloservlet如下,然後再去訪問http://localhost:8080/專案名稱/helloworld

public class helloservlet implements servlet 

public servletconfig getservletconfig()

public void destroy()

public string getservletinfo()

public void service(servletrequest req, servletresponse res)

throws servletexception, ioexception

}

在首次訪問helloservlet時,init方法會被執行,而且也會執行service方法。再次訪問時,只會執行service方法,不再執行init方法。在關閉tomcat時會呼叫destroy方法。

《學習日記》WEB快取

2 如果請求是認證或者加密的,則相應的內容也不快取 3 若有完整的過期時間和壽命控制頭資訊,則是新鮮的,或者快取展現出來並在不久前修改過,也可以認為新鮮的 響應如果沒有類似etag或last modified頭這樣的校驗器,也沒有明確的更新資訊,通常 並不絕對 認為是不可快取的。以上是驗證是否存在快...

前端學習日記10

新增模組 1 選擇器模組 2 邊框和背景 3 使用者介面 4 漸變 5 動畫 6 2d和3d 瀏覽器私有字首 瀏覽器廠商使用一種方式提前把屬性納為自己的標準,按時該屬性還沒有成為標準 字首 ie ms ms border radius chrome和safari webkit webkit bord...

Web前端學習 10

移動 translate x,y 或 translatex translatey 旋 rotate 正或負 縮放 scale x,y 或 scalex scaley 傾斜 skew x,y 或 skewx skewy translate translate x,y 2d轉換,沿x和y軸移動元素 tr...