這篇文章主要介紹ServletContext指的是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)是專業(yè)的雙橋網(wǎng)站建設(shè)公司,雙橋接單;提供成都網(wǎng)站設(shè)計、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行雙橋網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
每個應(yīng)用都會有一個ServletContext對象與之關(guān)聯(lián),當(dāng)容器分布在多個虛擬機上時,web應(yīng)用在所分布的每個虛擬機上都擁有一個 ServletContext實例。缺省情況下,ServletContext不是分布式的,并且只存在于一個虛擬機上。
ServletContext官方叫servlet上下文。服務(wù)器會為每一個工程創(chuàng)建一個對象,這個對象就是ServletContext對象。這個對象全局唯一,而且工程內(nèi)部的所有servlet都共享這個對象。所以叫全局應(yīng)用程序共享對象。
ServletContext:代表當(dāng)前web應(yīng)用(非常重要)
WEB容器在啟動時,它會為每個WEB應(yīng)用程序都創(chuàng)建一個對應(yīng)的ServletContext對象,它代表當(dāng)前web應(yīng)用。
ServletConfig對象中維護了ServletContext對象的引用,開發(fā)人員在編寫servlet時,可以通過ServletConfig.getServletContext方法獲得ServletContext對象由于一個WEB應(yīng)用中的所有Servlet共享同一個ServletContext對象,因此Servlet對象之間可以通過ServletContext對象來實現(xiàn)通訊。
ServletContext對象通常也被稱之為context域?qū)ο蟆?/p>
ServletContext的應(yīng)用:
context中常用的方法有:
void setAttribute(String,Object);
Object getAttribute(String);
void removeAttribute(String);
1.做為域?qū)ο罂梢栽谡麄€web應(yīng)用范圍內(nèi)共享數(shù)據(jù)。
域?qū)ο螅涸谝粋€可以被看見的范圍內(nèi)共享數(shù)據(jù)用到對象
作用范圍:整個web應(yīng)用范圍內(nèi)共享數(shù)據(jù)
生命周期:當(dāng)服務(wù)器啟動web應(yīng)用加載后創(chuàng)建出ServletContext對象后,域產(chǎn)生。當(dāng)web應(yīng)用被移除出容器或服務(wù)器關(guān)閉,隨著web應(yīng)用
的銷毀域銷毀。
2、獲取WEB應(yīng)用的初始化參數(shù)
我們在第一段中,通過
這里涉及到一些概念不要混淆:
請求參數(shù) parameter --- 瀏覽器發(fā)送過來的請求中的參數(shù)信息初始化參數(shù) initparameter --- 在web.xml中為Servlet或ServletContext配置的初始化時帶有的基本參數(shù)域?qū)傩?attribute --- 四大作用域中存取的鍵值對
代碼舉例:
在web.xml中為整個web應(yīng)用添加初始化參數(shù):用戶名、密碼。代碼位置如下:
package com.vae.servlet; import java.io.IOException; import java.util.Enumeration; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletTest03 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext context = this.getServletContext(); // 得到上下文對象 // 獲取單個的Context里面的初始化參數(shù) String value1 = context.getInitParameter("username"); String value2 = context.getInitParameter("password"); System.out.println(value1 + ";" + value2); System.out.println(); // 一次性獲取Context里所有的初始化參數(shù) Enumeration enumeration = context.getInitParameterNames(); while (enumeration.hasMoreElements()) { String name = (String) enumeration.nextElement(); String value = context.getInitParameter(name); System.out.println(name + ";" + value); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
上面的代碼可以看到,我們可以通過context.getInitParameter()方法獲得初始化參數(shù)。
運行效果如下:
以上是ServletContext指的是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!