首頁  >  文章  >  Java  >  2020全新Java面試題目-Java Web(一)

2020全新Java面試題目-Java Web(一)

王林
王林轉載
2020-06-15 17:12:582441瀏覽

2020全新Java面試題目-Java Web(一)

1、jsp 和 servlet 有什麼差別?

jsp經過編譯後變成了Servlet.(JSP的本質就是Servlet,JVM只能辨識java的類,不能辨識JSP的程式碼,Web容器將JSP的程式碼編譯成JVM能夠識別的java類別)

jsp更擅長表現於頁面顯示,servlet更擅長於邏輯控制。

Servlet中沒有內建對象,Jsp中的內建物件都是必須透過HttpServletRequest對象,HttpServletResponse物件以及HttpServlet物件得到。

Jsp是Servlet的一種簡化,使用Jsp只需要完成程式設計師需要輸出到客戶端的內容,Jsp中的Java腳本如何鑲嵌到一個類別中,由Jsp容器完成。而Servlet則是個完整的Java類,這個類別的Service方法用來產生對客戶端的回應。

(相關教學推薦:java入門程式

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

JSP有9個內建物件:

  • request:封裝客戶端的請求,其中包含來自GET或POST請求的參數;

  • response:封裝伺服器對客戶端的回應;

  • pageContext:透過該物件可以取得其他物件;

  • session:封裝使用者會話的物件;

  • application:封裝伺服器運行環境的物件;

  • out:輸出伺服器回應的輸出流對象;

  • config:Web應用程式的設定物件;

  • page:JSP頁面本身(相當於Java程式中的this);

  • exception:封裝頁面拋出例外的物件。

(相關影片教學推薦:java影片教學

3、說 jsp 的 4 種作用域?

JSP中的四個作用域包括page、request、session和application,具體來說:

  • page代表與一個頁面相關的物件和屬性。

  • request代表與Web客戶機發出的一個請求相關的物件和屬性。一個請求可能跨越多個頁面,涉及多個Web元件;需要在頁面顯示的臨時資料可以置於此作用域。

  • session代表與某個使用者與伺服器建立的一次會話相關的物件和屬性。跟某個使用者相關的資料應該放在使用者自己的session中。

  • application代表與整個Web應用程式相關的物件和屬性,它實質上是跨越整個Web應用程序,包括多個頁面、請求和會話的一個全域作用域。

4、session 和 cookie 有什麼差別?

  • 由於HTTP協定是無狀態的協議,所以當服務端需要記錄用戶的狀態時,就需要用某種機制來識具體的用戶,這個機制就是Session .典型的場景例如購物車,當你點擊下單按鈕時,由於HTTP協議無狀態,所以並不知道是哪個用戶操作的,所以服務端要為特定的用戶創建了特定的Session,用用於標識這個用戶,並且追蹤用戶,這樣才知道購物車裡面有幾本書。這個Session是保存在服務端的,有一個唯一識別。在服務端保存Session的方法很多,記憶體、資料庫、檔案都有。集群的時候也要考慮Session的轉移,在大型的網站,一般會有專門的Session伺服器集群,用來保存用戶會話,這個時候Session 資訊都是放在內存的,使用一些緩存服務比如Memcached之類的來放Session。

  • 思考一下服務端如何辨識特定的客戶?這時候Cookie就登場了。每次HTTP請求的時候,客戶端都會傳送對應的Cookie訊息到服務端。實際上大多數的應用程式都是用Cookie 來實作Session追蹤的,第一次建立Session的時候,服務端會在HTTP協定中告訴客戶端,需要在Cookie 裡面記錄一個Session ID,以後每次要求把這個會話ID傳送到伺服器,我就知道你是誰了。有人問,如果客戶端的瀏覽器停用了 Cookie 怎麼辦?一般這種情況下,會使用一種叫做URL重寫的技術來進行會話跟踪,即每次HTTP交互,URL後面都會被附加上一個諸如 sid=xxxxx 這樣的參數,服務端據此來識別用戶。

  • Cookie其實還可以用在一些方便使用者的場景下,設想你某次登陸過一個網站,下次登入的時候不想再輸入帳號了,怎麼辦?這個資訊可以寫到Cookie裡面,造訪網站的時候,網站頁面的腳本可以讀取這個訊息,就自動幫你把用戶名給填了,能夠方便一下用戶。這也是Cookie名稱的由來,給使用者的一點甜頭。所以,總結一下:Session是在服務端保存的資料結構,用來追蹤使用者的狀態,這個資料可以保存在叢集、資料庫、檔案中;Cookie是客戶端保存使用者資訊的一種機制,用來記錄用戶的一些訊息,也是實現Session的一種方式。

5、說一下 session 的工作原理?

其實session是一個存在伺服器上的類似一個散列表格的檔案。裡面存有我們需要的訊息,在我們需要用的時候可以從裡面取出。類似一個大號的map吧,裡面的鍵存儲的是用戶的sessionid,用戶向伺服器發送請求的時候會帶上這個sessionid。這時就可以從中取出對應的數值了。

推薦教學:java面試題

以上是2020全新Java面試題目-Java Web(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除