請問什么是Servlet上下文?
所謂的上下文是用來存儲系統的一些初始化信息的。例如,如果在jboss中通過一個配置文件指定了一個數據源,那么這個文件的相關信息就會放在jboss啟動時的上下文中。所以我們在使用這個數據源的時候,需要先獲取系統上下文,然后通過一定的取出數據源。至于系統啟動時如何將這些初始化信息加載到上下文中,以及上下文以什么形式體現在程序中,應該是隨系統不同而不同的。Context,即ServletContext,是存儲信息的全局空間。服務器啟動時存在,服務器關閉時釋放。所有用戶共享一個ServletContext。所以為了節省空間和提高效率,ServletContext應該把一些必要的、重要的、安全的信息放在所有用戶共享的線程中。比如做一個購物網站,我們需要從數據庫中提取物品信息。如果我們用session來保存這些物品信息,每個用戶都要訪問便利數據庫,效率太低。因此,當服務器啟動時,它訪問數據庫并將商品信息存儲在Servlet上下文中,這樣每個用戶只需要從上下文中讀取商品信息。獲取ServletCont
servlet原理?
1、Servlet執行過程
用戶請求一個Servlet,Servlet容器自動構造請求和響應對象,然后執行Servlet的service()方法,該方法將接收請求和響應對象,并通過響應對象將處理結果發送給用戶。
2.如何請求Servlet
用戶通過URL請求一個Servlet。
3.如何處理請求
當用戶請求Servlet時,容器構建一個ServletRequest對象,并將其傳遞給Servlet的Service()方法。服務通過請求對象獲取請求的參數,然后根據參數進行相應的處理,并通過ServletResponse對象將響應內容發送給客戶端。
4.如何回復客戶?
當用戶請求一個Servlet時,容器會自動創建一個Servletresponse對象,然后通過response對象將響應內容發送給客戶端。
的生命周期
a、部署Servlet類,啟動容器。
當Servlet被請求時,容器自動創建Servlet對象xServlet,然后xServlet調用它的init()方法。至此,Servlet初始化結束。
一旦客戶端請求Servlet,xServlet自動調用service()來處理請求。
d.一旦Servlet長時間沒有被請求(或者Servlet超時),容器就會從容器中清除xServlet。