說一說servlet的生命週期以及基本架構

說一說Servlet的生命週期?

答:servlet有良好的生存期的定義,包括載入和例項化、初始化、處理請求以及服務結束。這個生存期由javax。servlet。Servlet介面的init,service和destroy方法表達。

Servlet被伺服器例項化後,容器執行其init方法,請求到達時執行其service方法,service方法自動派遣執行與請求對應的doXXX方法(doGet,doPost)等,當伺服器決定將例項銷燬的時候呼叫其destroy方法。

web容器載入servlet,生命週期開始。透過呼叫servlet的init()方法進行servlet的初始化。透過呼叫service()方法實現,根據請求的不同調用不同的do***()方法。結束服務,web容器呼叫servlet的destroy()方法。

HTTP請求的GET與POST方式的區別

答:servlet有良好的生存期的定義,包括載入和例項化、初始化、處理請求以及服務結束。這個生存期由javax。servlet。Servlet介面的init,service和destroy方法表達。

解釋一下什麼是servlet;

答:servlet有良好的生存期的定義,包括載入和例項化、初始化、處理請求以及服務結束。這個生存期由javax。servlet。Servlet介面的init,service和destroy方法表達。

Servlet的基本架構

public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

}

}

Request物件的主要方法:

setAttribute(String name,Object):設定名字為name的request的引數值

getAttribute(String name):返回由name指定的屬性值

getAttributeNames():返回request物件所有屬性的名字集合,結果是一個列舉的例項

getCookies():返回客戶端的所有Cookie物件,結果是一個Cookie陣列

getCharacterEncoding():返回請求中的字元編碼方式

getContentLength():返回請求的Body的長度

getHeader(String name):獲得HTTP協議定義的檔案頭資訊

getHeaders(String name):返回指定名字的request Header的所有值,結果是一個列舉的例項

getHeaderNames():返回所以request Header的名字,結果是一個列舉的例項

getInputStream():返回請求的輸入流,用於獲得請求中的資料

getMethod():獲得客戶端向伺服器端傳送資料的方法

getParameter(String name):獲得客戶端傳送給伺服器端的有name指定的引數值

getParameterNames():獲得客戶端傳送給伺服器端的所有引數的名字,結果是一個列舉的例項

getParametervalues(String name):獲得有name指定的引數的所有值

getProtocol():獲取客戶端向伺服器端傳送資料所依據的協議名稱

getQueryString():獲得查詢字串

getRequestURI():獲取發出請求字串的客戶端地址

getRemoteAddr():獲取客戶端的IP地址

getRemoteHost():獲取客戶端的名字

getSession([Boolean create]):返回和請求相關Session

getServerName():獲取伺服器的名字

getServletPath():獲取客戶端所請求的指令碼檔案的路徑

getServerPort():獲取伺服器的埠號

removeAttribute(String name):刪除請求中的一個屬性

forward 和redirect的區別

forward是伺服器請求資源,伺服器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道伺服器傳送的內容是從哪兒來的,所以它的位址列中還是原來的地址。

redirect就是服務端根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有引數重新請求,所以session,request引數都可以獲取。

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

答:JSP共有以下9個內建的物件:

request 使用者端請求,此請求會包含來自GET/POST請求的引數

response 網頁傳回使用者端的迴應

pageContext 網頁的屬性是在這裡管理

session 與請求有關的會話期

application servlet 正在執行的內容

out 用來傳送回應的輸出

config servlet的構架部件

page JSP網頁本身

exception 針對錯誤網頁,未捕捉的例外

request表示HttpServletRequest物件。它包含了有關瀏覽器請求的資訊,並且提供了幾個用於獲取cookie, header, 和session資料的有用的方法。

response表示HttpServletResponse物件,並提供了幾個用於設定送回 瀏覽器的響應的方法(如cookies,頭資訊等)

out物件是javax。jsp。JspWriter的一個例項,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。

pageContext表示一個javax。servlet。jsp。PageContext物件。它是用於方便存取各種範圍的名字空間、servlet相關的物件的API,並且包裝了通用的servlet相關功能的方法。

session表示一個請求的javax。servlet。http。HttpSession物件。Session可以儲存使用者的狀態資訊

applicaton 表示一個javax。servle。ServletContext物件。這有助於查詢有關servlet引擎和servlet環境的資訊

config表示一個javax。servlet。ServletConfig物件。該物件用於存取servlet例項的初始化引數。

page表示從該頁面產生的一個servlet例項

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

(這個問題似乎不重要,不明白為何有此題)

答:JSP共有以下6種基本動作

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

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

jsp:setProperty:設定JavaBean的屬性。

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

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

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

JSP的常用指令

isErrorPage(是否能使用Exception物件),isELIgnored(是否忽略表示式)

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

答:動態INCLUDE用jsp:include動作實現

它總是會檢查所含檔案中的變化,適合用於包含動態頁面,並且可以帶引數 靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面 <%@ include file=included。htm %>

兩種跳轉方式分別是什麼?有什麼區別?

(下面的回答嚴重錯誤,應該是想問forward和sendRedirect 的區別,畢竟出題的人不是專業搞文字藝術的人,可能表達能力並不見得很強,用詞不一定精準,加之其自身的技術面也可能存在一些問題,不一定真正將他的意思表達清楚了,嚴格意思上來講,一些題目可能根本就無人能答,所以,答題時要掌握主動,只要把自己知道的表達清楚就夠了,而不要去推敲原始題目的具體含義是什麼,不要一味想著是在答題)

答:有兩種,分別為:

前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完後還會回來,相當於函式呼叫。並且可以帶引數。後者完全轉向新頁面,不會再回來。相當於go to 語句。

我們在web應用開發過程中經常遇到輸出某種編碼的字元,如iso8859-1等,如何輸出一個某種編碼的字串?

Public String translate (String str) {

String tempStr = “”;

try {

tempStr = new String(str。getBytes(“ISO-8859-1”), “GBK”);

tempStr = tempStr。trim();

}

catch (Exception e) {

System。err。println(e。getMessage());

}

return tempStr;

}

MVC的各個部分都有那些技術來實現?如何實現?

答:MVC是Model-View-Controller的簡寫。Model 代表的是應用的業務邏輯(透過JavaBean,EJB元件實現), View 是應用的表示面(由JSP頁面產生),Controller 是提供應用的處理過程控制(一般是一個Servlet),透過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的元件實現。這些元件可以進行互動和重用。

說一說servlet的生命週期以及基本架構

分享就到這裡啦,喜歡的朋友們點贊,收藏,加關注哦!領取資料後臺私聊小編:即可免費領取!