亞信聯創面試前準備
面試題目:簡述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 |