servlet生命週期 & http & JSP九個內置對象

亞信聯創面試前準備

面試題目:簡述servlet的生命週期

答:

標準:

1. web服務器首先會檢查是否已經裝載並創建了該servlet實例對象。如果是直接進行第4步,否則執行第2步

2. 裝載並創建該servlet的一個實例對象

3. 調用servlet實例對象的init方法

4. 創建一個用於封裝http請求消息的httpservletrequest對象和一個代表http響應纖細的httpservletresponse對象,然後調用service()方法並將請求和響應作爲參數傳遞進去。

5. web應用被停止或者重啓之前,servlet引擎將卸載servlet,在卸載之前調用servlet的destroy()方法


簡化版:

1. 當servlet第一次被調用的時候,觸發init函數,該函數會把servlet實例裝載到內存,該函數只會被調用一次

2. 調用servlet的service()函數

3. 當第二次訪問該servlet就直接調用service函數

4. 當web應用reload或者關閉tomcat或者關機都會去調用destroy函數,該函數就會去銷燬servlet

5. servlet的生命週期


servlet接口的5個方法:

1. init 初始化調用

2. service 有請求的時候調用

3. destroy() 銷燬的時候調用

4. getServletConfig 

5. getServletInfo


最簡單版:

1. 加載(tomcat啓動時)

2. 實例化(第一次調用servlet,創建一個servlet實例)

3. 初始化(調用init函數)

4. 處理請求(實現了servlet接口,service函數,如果是繼承了HttpServlet,重寫doGet 和 doPost 函數)

5. 銷燬(destroy)



配置 servlet 中的<load-on-startup> 可以指定某個servlet自動創建。

servlet接口中的getServletConfig().getInitParameterNames()可以得到配置文件中的參數。



http協議的複習:

http1.0 短連接(發完就斷掉)

http1.1 長連接(30秒)

http請求部分:

【請求行】請求方式:GET  ...  HTTP/1.1

【消息頭】

1) Accept : text/html , image/* 【表示自己可以接受文本,網頁,圖片】

2)Accept-Charset: ISO-8859-1 

3)  Accept-Encoding : gzip, compress [ 可以接受gzip和compress壓縮後的數據】

4)Accept-Language: 瀏覽器支持文字

5)Host: www.sohu.com:80 【表示該請求要找的主機名和port】

6)If-Modified-Since: 【後面一個時間,告訴服務器,我的緩衝中有這個資源文件,該文件的時間是。。。】

7)Referer:http://www.sohu.com/index.jsp 【告訴服務器,我來自哪裏,該消息頭,常用於防盜鏈】

8)User-Agent: Mozilla/4.0(compatible:MSIE 5.5; Windows NT 5.0) 【告訴服務器瀏覽器內核】

9)Cookie

10) Connection: close/keep-Alive 【保持連接,發完數據後,我不關閉連接】

11)Date: 【瀏覽器發送該http請求的時間】


http響應頭:

【狀態行】HTTP/1.1 200 OK

【消息頭】

Server: 服務器名稱

Date : 返回時間

Content-Length: 

Content-Type : 

Cache-control : private


【實體內容】

<html>

<BODY>


狀態碼 含義
100-199 需要提交下一次請求才能完成整個處理過程
200-299 成功完成請求並完成處理過程(200)
300-399 資源移位(302)
400-499 客戶端請求有錯誤(404)
500-599 服務器端出現異常(500)

http響應頭詳細解釋:

Location:http:// www.baidu.org/index.jsp 【讓瀏覽器重新定位到url】

Server:apache tomcat【告訴瀏覽器我用tomcat】

Content-Encoding:gzip【使用的內容編碼】

Content-Length:80【告訴瀏覽器會送的數據大小80字節】

Last-Modified:【告訴瀏覽器,資源上次更新狀態】

Refresh: 1 ; url = http://www.baidu.com 【過去多久,刷新到這個url】

Content-Disposition:attachment ; filename = aaa.zip 【告訴瀏覽器,有文件下載】

Transfer-Encoding:chunked 【傳輸編碼】

Set-Cookie: 

Expires: -1 【ie緩存頁面】

Cache-Control:no-cache 【火狐緩存頁面】

Pragma:no-cache【其他瀏覽器緩存頁面】

Connection:

Date:




JSP 的9個內置對象

對象名 中文名 類型 作用域
Request 請求 javax.servlet.ServletRequest Request
Response 應答 javax.servlet.ServletResponse Page
pageContext 頁面上下文對象 javax.servlet.jsp.PageContext Page
session 會話對象 javax.servlet.http.HttpSession Session
application 應用程序對象 javax.servlet.ServletContext Application
out 輸出對象 javax.servlet.jsp.JspWriter Page
config 配置對象 javax.servlet.ServletConfig Page
page 頁面對象 java.lang.object Page
exception 異常對象 java.lang.Throwable Page





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章