JavaWeb相關面試題!

  • 2019 年 10 月 5 日
  • 筆記
  • 簡述Servlet和JSP的關係

答∶JSP是以另外一種方式實現的Servlet,Servlet是JSP的早期版本,在JSP中,更加註重頁面的表現,而在Servlet中則更注重業務邏輯的實現。

因此,當編寫的頁面顯示效果比較複雜時,首選是JSP。或者在開發過程中,HTML程式碼經常發生變化,而Java程式碼則相對比較固定時,可以選擇JSP。而我們在處理業務邏輯時,首選則是Servlet。 同時,JSP只能處理瀏覽器的請求,而Servlet則可以處理一個客戶端的應用程式請求。因此,Servlet加強了Web伺服器的功能。

  • 簡述Servlet的生命周期。(企業筆試題)

答∶Servlet運行機制和Applet類似,Servlet是載伺服器端運行的,但是Applet是在客戶端運行的。Servlet是javax.servlet包中HttpServlet類的子類,由伺服器完成該子類的創建和初始化。

Servlet的生命周期主要由3個過程組成。

1、init()方法:伺服器初始化Servlet。

2、service()方法:初始化完畢,Servlet對象調用該方法相應客戶的請求。

3、destroy()方法:調用該方法消滅Servlet對象。

其中,init()方法只在Servlet第一次被請求載入的時候被調用一次,當有客戶再請求Servlet服務時,Web伺服器將啟動一個新的執行緒,在該執行緒中,調用service方法相應客戶的請求。

  • jsp有哪些內置對象?作用分別是什麼?

答∶JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):

request

用戶端請求,此請求會包含來自GET/POST請求的參數

response

網頁傳回用戶端的回應

pageContext

網頁的屬性是在這裡管理

application servlet

正在執行的內容

config servlet

構架部件

session

與請求有關的會話期

out

用來傳送回應的輸出

page JSP

網頁本身

exception

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

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

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

jsp:include

在頁面被請求的時候引入一個文件。

jsp:useBean

尋找或者實例化一個JavaBean。

jsp:setProperty

設置JavaBean的屬性。

jsp:getProperty

輸出某個JavaBean的屬性。

jsp:forward

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

jsp:plugin

根據瀏覽器類型為Java插件生成OBJECT或EMBED標記

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

答∶MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業務邏輯

(通過JavaBean,EJB組件實現), "View" 是應用的表示面(由JSP頁面產生),

"Controller" 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。

  • 轉發和重定向的區別

答∶

forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);

redirect方式:response.sendRedirect("/somePage.jsp");forward是伺服器內部重定向, 程式收到請求後重新定向到另一個程式,客戶機並不知道;redirect則是伺服器收到請求後發送一個狀態頭給客戶,客戶將再請求一次,這裡多了兩次網路通訊的來往。當然forward也有缺點,就是forward的頁面的路徑如果是相對路徑就會有些問題了。

forward 會將 request state , bean 等等資訊帶往下一個 jspredirect 是送到 client 端後再一次 request ,所以資料不被保留.使用 forward 你就可以用 getAttribute() 來取的前一個 jsp 所放入的 bean 等等資料

  • 使用HTTP協議將客戶端的請求傳送到伺服器端有哪兩種方式?請簡述它們的區別

答∶1) get是從伺服器上獲取數據,post是向伺服器傳送數據。

2) 在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTML HEADER內提交。

3) 對於get方式,伺服器端用request.getQueryString()可以獲取GET請求參數的變數值,對於post方式,伺服器端用request.getParameter獲取提交的數據。

4) GET方式提交的數據最多只能有1024位元組,而POST則沒有此限制。

5) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些數據是中文數據而且是非敏感數據,那麼使用 get;如果用戶輸入的數據不是中文字元而且包含敏感數據,那麼還是使用 post為好。

  • jsp主要內置對象有?

答∶

request

response

out

exception

session

application

config

pageContext

page

  • 請簡述Cookie, Session 和Application它們的區別

答∶1) Cookie會在客戶端硬碟上創建Cookie文件

2) Session大部分情況下會在伺服器端硬碟上寫入Cookie文件

3) Cookie安全性最低

4) Application 表示Servlet上下文環境,在整個WEB應用中只有一個Application對象,用於存儲些全局性的數據

  • 三個Statment區別,用法

答∶Statment,基本的;PreparedStatement是可編譯的,提高效率,callablestatment,存儲過程

  • 什麼是mvc模式?

答∶是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、介面顯示分離的方法組織程式碼,將業務邏輯聚集到一個部件裡面,在改進和個性化訂製介面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶介面的結構中。

模型

model

視圖

view

控制器

controller

Model(模型)是應用程式中用於處理應用程式數據邏輯的部分。通常模型對象負責在資料庫中存取數據。

View(視圖)是應用程式中處理數據顯示的部分。通常視圖是依據模型數據創建的。

Controller(控制器)是應用程式中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。