1、Servlet執行時一般實現哪幾個方法?
答:Servlet執行時一般實現哪幾個方法?
(1)public void init(ServletConfig config)
(2)public ServletConfig getServletConfig()
(3)public String getServletInfo()
(4)public void service (ServletRequest request,
ServletResponse response)
(5)public void destroy()
2、說出Servlet的生命週期,並說出Servlet和CGI的區別。
答:Servlet被伺服器執行個體化後,容器運行其init方法,請求到達時運行其service()方法,service()方法自動運行與請求對應的doXXX方法(doGet,doPost)等,伺服器決定將執行個體銷毀的時候調用destroy()方法。
與CGI的區別在於:Servlet處於伺服器處理序中,它通過多線程方式運行其service()方法,一個執行個體可以服務於多個請求,並且其執行個體一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成後就銷毀,所以效率上低於Servlet。
3、說說forward 和redirect的區別。
答:forward是伺服器請求資源,伺服器直接存取目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道伺服器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。
redirect就是服務端根據邏輯,發送一個狀態代碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以擷取。
4、什麼情況下調用doGet()和doPost()?
答:JSP頁面中的form標籤裡的method屬性為get時調用doGet(),為post時調用doPost()。
5、JSP和Servlet有哪些相同點和不同點,他們之間的聯絡是什嗎?
答:JSP是Servlet技術的擴充,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是“類servlet”。
Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java檔案中,並且完全從展示層中的HTML裡分離開來。而JSP的情況是Java和HTML可以組合成一個副檔名為“.jsp”的檔案。JSP側重於視圖,Servlet主要用於控制邏輯。
6、JSP中動態INCLUDE與靜態INCLUDE的區別?
答:動態INCLUDE用jsp:include動作實現 它總是會檢查所含檔案中的變化,適合用於包含動態網頁面,並且可以帶參數,其代碼為:
<jsp:include page="included. jsp" flush="true" />
靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面,其代碼為:
<%@ include file="included.htm" %>
7、四種會話跟蹤技術分別是什嗎?
答:會話範圍Servlets JSP 頁面描述分別為:
(1)page是代表與一個頁面相關的對象和屬性。一個頁面由一個編譯好的 Java servlet表示。這既包括servlet又包括被編譯成servlet的JSP頁面。
(2)request是代表與Web客戶機發出的一個請求相關的對象和屬性。一個請求可能跨越多個頁面,涉及多個Web組件(由於forward指令和include 動作的關係)。
(3)session是代表與用於某個Web客戶機的一個使用者體驗相關的對象和屬性。一個 Web 會話可以也經常會跨越多個客戶機請求。
(4)application是代表與整個Web應用程式相關的對象和屬性。這實質上是跨越整個Web應用程式,包括多個頁面、請求和會話的一個全域範圍。
8、JSP有哪些動作?作用分別是什麼?
答:JSP共有以下6種基本動作:
(1)jsp:include表示在頁面被請求的時候引入一個檔案。
(2)jsp:useBean表示尋找或者執行個體化一個JavaBean。
(3)jsp:setProperty表示設定JavaBean的屬性。
(4)jsp:getProperty表示輸出某個JavaBean的屬性。
(5)jsp:forward表示把請求轉到一個新的頁面。
(6)jsp:plugin表示根據瀏覽器類型為Java外掛程式產生OBJECT或EMBED標記。