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