1. 程式人生 > >撩課-Java每天5道面試題第8天

撩課-Java每天5道面試題第8天

71.jsp有哪些內建物件?作用分別是什麼?

Page,
pageContext,
request,
response,
session,
application,
out,
config,
exception

Page指的是JSP被翻譯成Servlet的物件的引用.

pageContext物件可以用來獲得其他8個內建物件,
還可以作為JSP的域範圍物件使用.
pageContext中存的值是當前的頁面的作用範圍

request代表的是請求物件,
可以用於獲得客戶機的資訊,
也可以作為域物件來使用,
使用request儲存的資料
在一次請求範圍內有效。

Session代表的是一次會話,
可以用於儲存使用者的私有的資訊,
也可以作為域物件使用,
使用session儲存的資料在一次會話範圍有效

Application:代表整個應用範圍,
使用這個物件儲存的資料
在整個web應用中都有效。

Response是響應物件,
代表的是從伺服器向瀏覽器響應資料.

Out:JSPWriter是用於
向頁面輸出內容的物件

Config:指的是ServletConfig
用於JSP翻譯成Servlet後 
獲得Servlet的配置的物件.

Exception:在頁面中設定isErrorPage
=”true”, 即可使用, 是Throwable的引用.用來獲得頁面的錯誤資訊。

 

72.jsp有哪些動作?作用分別是什麼?

jsp:include:
在頁面被請求的時候引入一個檔案。

jsp:useBean:
尋找或者例項化一個JavaBean。

jsp:setProperty:
設定JavaBean的屬性。

jsp:getProperty:
輸出某個JavaBean的屬性。

jsp:plugin:
根據瀏覽器型別為Java外掛生成OBJECT或EMBED標記。

jsp:forward:
把請求轉到一個新的頁面。

 

73.JSP中動態INCLUDE與靜態INCLUDE的區別?

1. 靜態include的結果是
把其他jsp引入當前jsp,
兩者合為一體
動態include的結構是兩者獨立,
直到輸出時才合併
看看jsp生成的java檔案就可以知道了

2.正是因為這樣,
動態include的jsp檔案獨立性很強,
是一個單獨的jsp檔案,
需要使用的物件,
頁面設定,都必須有自己建立,
當然,還好它和include
它的頁面的request範圍是一致的.

而靜態include純粹是把程式碼
寫在外面的一種共享方法,
所有的變數都是可以
和include它的主檔案共享
,兩者高度緊密結合,
不能有變數同名的衝突.
而頁面設定也可以借用主檔案的.

 

74.說一說Servlet的生命週期?

servlet 的生命週期是有四個階段:
例項化 –> 
初始化 –> 
請求處理 –> 
銷燬

建立 Servlet 例項。
Web 容器呼叫 Servlet 的 init() 方法,
對Servlet 進行初始化。
Servlet 初始化後,
將一直存在於容器中,
用於響應客戶端請求。
根據客戶端的請求方式通過 Servlet 中service() 方法
去相應的 goGet(),或 doPost() 方法;
Web 容器銷燬Servlet 時,
呼叫 Servlet 的 destroy() 方法,
通常在關閉Web容器之時銷燬Servlet。
servlet 生命週期的三個方法:
​ init()方法:
Servlet例項化時呼叫此方法
​ Service()方法:
客戶請求和響應呼叫此方法。
​ Destroy()方法:
釋放記憶體,關閉web伺服器呼叫此方法

 

75.說說JSP 的生命週期?

瀏覽器首先要請求一個以.jsp副檔名結尾的頁面,
發起JSP請求,
然後,Web伺服器讀取這個請求,
使用JSP編譯器把JSP頁面
轉化成一個Servlet類。
需要注意的是,
只有當第一次請求頁面
或者是JSP檔案發生改變的時候
JSP檔案才會被編譯,
然後伺服器呼叫servlet類,
處理瀏覽器的請求。
一旦請求執行結束,
servlet會把響應傳送給客戶端。

jsp 的生命週期分為四個階段:
編譯
初始化
執行
銷燬