更新時間:2020-05-06 12:17:02 來源:動力節點 瀏覽2210次
1、說出Servlet的生命周期,并說出Servlet和CGI的區別?
答:Web容器加載Servlet并將其實例化后,Servlet生命周期開始,容器運行其init方法進行Servlet的初始化,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當服務器決定將實例銷毀的時候調用其destroy方法。與cgi的區別在于servlet處于服務器進程中,它通過多線程方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于servlet。
2、Servlet的基本架構
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
}
pblicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
}
}
3、forward和redirect的區別?
答:forward是容器中控制權的轉向,是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取,并且從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接;在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。
4、說出數據連接池的工作機制是什么?
答:J2EE服務器啟動時會建立一定數量的池連接,并一直維持不少于此數目的池連接。客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接并將其表記為忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動程序將此連接表記為空閑,其他調用就可以使用這個連接。
5、JSP的內置對象及方法?
答: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可以存貯用戶的狀態信息。application表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的信息。config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數。page表示從該頁面產生的一個servlet實例。
6、jsp有哪些動作?作用分別是什么?
答:JSP共有以下6種基本動作:
jsp:include:在頁面被請求的時候引入一個文件;
jsp:useBean:尋找或者實例化一個JavaBean。;
jsp:setProperty:設置JavaBean的屬性。;
jsp:getProperty:輸出某個JavaBean的屬性;
jsp:forward:把請求轉到一個新的頁面;
jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記。
7、jsp有哪些內置對象?作用分別是什么?
答:JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
request:用戶端請求,此請求會包含來自GET/POST請求的參數;
response:網頁傳回用戶端的回應;
pageContext:網頁的屬性是在這里管理;
session:與請求有關的會話期;
application:servlet正在執行的內容;
out:用來傳送回應的輸出;
config:servlet的構架部件;
page:JSP網頁本身;
exception:針對錯誤網頁,未捕捉的例外。
8、get和post的區別?
答:Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
1)Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據;
2)Get將表單中數據按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL;
3)Get是不安全的,因為在傳輸過程,數據被放在請求的URL中;Post的所有操作對用戶來說都是不可見的;
4)Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post;
5)Get限制Form表單的數據集必須為ASCII字符,而Post支持整個ISO10646字符集;
6)Get是Form的默認方法。
以上就是動力節點java培訓機構的小編針對“經典面試,Java web常見面試題”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習