JAVA面試總結——Java web(一)

Java web面試寶典(一)

1.頁面請求的流程:

一個web應用程序一般都是由客戶端程序與服務器端程序兩部分組成。其中客戶端主要是指用戶和瀏覽器。用戶通過瀏覽器查找所需資源,而這些資源位於服務器上。

  • 用戶輸入網址。
  • 把用戶請求發送給服務器。
  • 服務器查找請求的網頁
  • 找到用戶請求的網頁
  • 發送響應消息
  • 瀏覽器顯示返回結果
2.HTTP中GET和POST方法有什麼區別

Get是最簡單的一種請求方法,其主要功能是從服務器端獲取用戶所需的資源,並將其做爲響應返回給客戶端。Get的方法的作用主要用來獲取服務器端資源信息,不會影響到資源自身的狀態。
Post比Get方法更強大,除了能從服務器上獲取資源,還可以向服務器上傳資源。
一般不建議採用GET向服務器上傳數據,有以下兩個原因:

  • GET向服務器上傳數據時,一般把數據添加在URL後面,並且兩者用“?”連接,各個變量之間用“&”連接。由於URL長度存在限制,採用這種方法上傳的數據量很小。

  • 由於1中提到的,所以GET方法上傳數據存在安全隱患,因爲提交的數據在URL中可見。

3.什麼是Servlet

Java Servlet是運行在web服務器或應用服務器上的程序,它是作爲來自web瀏覽器或其他HTTP客戶端的請求和HTTP服務器上的數據庫或應用程序之間的中間層。相較於CGI,Servlet有以下幾點優勢:

  • 較好的移植性,可擴展性強。由於java語言的跨平臺和可移植性強的特點,java語言是健壯的、面向對象的編程,容易擴展。
  • 執行效率高。CGI對每個請求都建立一個進程來處理,而Servlet建立一個線程來執行。創建線程比創建進程的開銷要小。
  • 功能強大。Servlet可以與web服務器進行交互,而CGI卻無法與web服務器直接交互。
  • 使用方便
    具體而言,Servlet處理客戶端請求有如下幾個步驟:
  • 用戶通過單擊一個鏈接來向Servlet發起請求。
  • web服務器接收到該請求後,會把該請求交給相應的容器來處理,當容器發現這是對Servlet發起的請求後,容器此時會創建兩個對象:HttpServletResponse和HttpServletRequest
  • 容器可以根據請求消息中的URL消息找到對應的Servlet,然後針對該請求創建一個單獨的線程,同時把上一步中創建的兩個對象以參數的形式傳遞到新創建的線程中。
  • 容器調用Servlet的Service()方法來完成對用戶請求的響應,service()方法調用doPost()或doGet()方法來完成具體的響應任務,同時生成動態頁面返回給容器。
  • 容器把響應的消息組裝成HTTP格式返回給客戶端。此時,這個線程運行結束,同時刪除第二步創建的兩個對象。
    在這裏插入圖片描述
4.doPost()方法和doGet()方法怎麼選擇

當HTTP請求中的method屬性爲get時,調用doGet()方法;當method屬性爲post時,則調用doPost方法。

5.什麼是Servlet生命週期

Servlet生命週期可被定義爲從創建直到毀滅的整個過程。只有兩個狀態:未創建狀態與初始化狀態。由以下三個重要方法來控制:

  • Servlet 通過調用 init () 方法進行初始化。
  • Servlet 調用 service() 方法來處理客戶端的請求。
  • Servlet 通過調用 destroy() 方法終止(結束)。
    最後,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。
    Servlet的生命週期可以分爲加載、創建、初始化、處理客戶請求和卸載五個階段。
    1.加載:加載Servlet
    2.創建:調用Servlet構造函數來創建一個Servlet實例
    3.初始化:init()完成初始化工作
    4.處理客戶請求:service()
    5.卸載:在卸載Servlet之前需要調用destroy()方法。
6.JSP有哪些優點

jsp的引入一定程度上解決了Servlet的缺點,其實現理念是讓每個Servlet只負責其對應的業務邏輯的處理,讓JSP來負責用戶的HTML顯示,因此實現了業務邏輯與視圖實現的分離,從而極大地提高了系統的擴展性。

7.JSP和Servlet有何異同

同:JSP可以完成的工作,使用Servlet都可以完成。由於JSP頁面最終要被轉換成Servlet來運行。
不同:Servlet實現是在java中嵌入 HTML代碼,編寫和修改HTML非常不便,比較適合做流程控制、業務處理;而JSP的實現方式爲HTML中嵌入java代碼,比較適合頁面的顯示。
Servlet中沒有內置對象 ,JSP中的內置對象都必須通過HttpServletRequest對象、HttpServletRequest對象以及HttpServlet對象得到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章