1. 程式人生 > >JAVA面試常問知識總結(十一)——Servlet

JAVA面試常問知識總結(十一)——Servlet

  • Servlet屬於執行緒安全的嗎?

  Servlet不是執行緒安全的!

  

  • 談談轉發和重定向的區別

請求轉發:

request.getRequestDispatcher("/king_l2lu.jsp").forward(request,response);

重定向:

response.sendRedirect(request.getContextPath + "/king_l2lu.jsp");

  • 談談jsp的9大內建物件

1、request物件 

request 物件是 javax.servlet.httpServletRequest型別的物件。該物件代表了客戶端的請求資訊,主要用於接受通過HTTP協議傳送到伺服器的資料。(包括頭資訊、系統資訊、請求方式以及請求引數等)。request物件的作用域為一次請求。

2、response物件 

response 代表的是對客戶端的響應,主要是將JSP容器處理過的物件傳回到客戶端。response物件也具有作用域,它只在JSP頁面內有效。

3、session物件 

session 物件是由伺服器自動建立的與使用者請求相關的物件。伺服器為每個使用者都生成一個session物件,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。session物件內部使用Map類來儲存資料,因此儲存資料的格式為 “Key/value”。 session物件的value可以使複雜的物件型別,而不僅僅侷限於字串型別。

4、application物件 

application 物件可將資訊儲存在伺服器中,直到伺服器關閉,否則application物件中儲存的資訊會在整個應用中都有效。與session物件相比,application物件生命週期更長,類似於系統的“全域性變數”。

5、out物件 

out物件用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出流。

6、pageContext物件 

pageContext物件的作用是取得任何範圍的引數,通過它可以獲取 JSP頁面的out、request、reponse、session、application等物件。pageContext物件的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext物件。

7、config物件

config物件的主要作用是取得伺服器的配置資訊。通過 pageConext物件的 getServletConfig() 方法可以獲取一個config物件。當一個Servlet 初始化時,容器把某些資訊通過 config物件傳遞給這個 Servlet。開發者可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化引數。

8、page物件

page 物件代表JSP本身,只有在JSP頁面內才是合法的。 page隱含物件本質上包含當前 Servlet介面引用的變數,類似於Java程式設計中的 this 指標。

9、exception物件

exception物件的作用是顯示異常資訊,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該物件將無法編譯JSP檔案。excepation物件和Java的所有物件一樣,都具有系統提供的繼承結構。exception物件幾乎定義了所有異常情況。在Java程式中,可以使用try/catch關鍵字來處理異常情況;如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 物件,並把 exception 物件傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 物件。

  • 4個數據傳輸域以及它們的區別

  JSP四個域物件:pageContext、servletContext、request、sesssion

 

  • SpringMVC是如何讓Controler替代Servlet工作的

  所有的請求,都是請求到了DispatcherServlet類中,該類通過配置項,掃描了我們配置的jar包;然後通過註解,找到相對應的方法,進行程式碼處理;