① java servlet 主要用來做什麼
簡單一點說吧:
1.比如說你在一個網頁上輸入姓名和密碼,然後點擊提交。這時候頁面就會跳轉(跳轉方法有post和get)。
2.跳轉到哪呢,這就通過web.xml文件配置你的跳轉,一般就跳轉到servlet來處理。
3.servlet說白了,就是一個java類,繼承HttpServlet,主要有doGet和doPost方法,你在頁面代碼寫的是get方法跳轉,那麼就運行servlet里doGet方法裡面的代碼(post同理)。
4.doGet裡面的代碼就處理操作,一般首先用特定方法獲得頁面提交的姓名和密碼,然後進行處理(判斷是否合法等等),處理玩之後,決定是直接顯示信息,還是跳轉到其他頁面。
servlet就是接受頁面信息,然後進行邏輯處理的一個java類。
至於學習資料,網上找一個servlet的小例子很多,有java基礎很容易看懂,沒有基礎也可以學會
② 什麼是servlet
1.什麼是SERVLET?
Servlet是用Java編寫的伺服器端程序, 其主要功能在於互動式地瀏覽和修改數據,生成動態Web內容.
狹義的Servlet是指Java語言實現的一個介面,廣義的Servlet是指任何實現了這個Servlet介面的類,一般情況下,我們一般將Servlet理解為後者。
這段話可能聽起來有些繞, 但如果大家把Servlet與Spring MVC 的前端控制器 DispatcherServlet
結合起來理解, 應該立馬就知道它是做什麼的了. Servlet 是Java JDK提供的一個介面, 所有的Servlet都繼承於它,
而DispatcherServlet是一個繼承了實現了Servlet介面的類的類.
2.知識剖析
Servlet 的生命周期
Servlet 的生命周期分為三個階段, 分別對應Servlet中的三個介面.
init() 初始化.
service() 處理客戶端的請求, 具體業務邏輯. ServletRequest 對象用於獲得客戶端信息,ServletResponse 對象用於向客戶端返回信息(客戶端可以理解為瀏覽器)
destroy() 結束時調用. 這個方法只有在servlet的service方法內的所有線程都退出的時候,或在超時的時候才會被調用。
init() 和 destroy() 都只會在Servlet創建和銷毀時調用一次, 而service() 則會在響應不同請求時多次調用.
注意Servlet是一個介面,實現了servlet的類,是不能直接處理請求的.
請求需要通過Servlet容器來發送到Servlet, Servlet是運行在Servlet容器中的.
Servlet容器是Web伺服器和servlet進行交互的必不可少的組件。常見Web伺服器有Tomcat, jetty, resin, 它們也可以稱為應用伺服器
3.常見問題
1. Servlet 如何接收才能接收到Servlet容器發來的請求?
2. Servlet 什麼時候被初始化?
3. DispatcherServlet 如何處理容器發來的請求?
4.解決方案
1. Servlet 容器通過監聽埠(8080)來接收用戶發送的請求, 然後通過web.xml中的 Servlet-mapping 配置, 來匹配到請求Heades中的url信息, 將其轉發到對應Servlet配置中的Servlet實現類完成請求接收.
2. Servlet 的初始化是由Web.xml 中的 loadOnStartup 配置控制的.
當 loadOnStartup < 0 或者不寫時, 接收到第一次請求的時候實例化.
當 loadOnStartup > 0 web容器啟動的時候做實例化處理,順序是由小到大,正整數小的先被實例化
當 loadOnStartup = 0 web容器啟動的時候做實例化處理,相當於是最大整數,因此web容器啟動時,最後被實例化
3. 通過DispatcherServlet 的執行流程來看它時如何處理請求的
希望對您有所幫助!~