servletContext是Servlet中最大的一個接口,呈現了web應用的Servlet視圖,而ServletContext實例是透過「getServletContext()」方法獲得的。
本篇文章將介紹ServletContext的功能及其方法還有它的用途。
推薦課程:Java教學。
每個應用程式都會有一個ServletContext物件與之關聯,當容器分佈在多個虛擬機器上時,web應用在所分佈的每個虛擬機器上都擁有一個 ServletContext實例。預設情況下,ServletContext不是分散式的,並且只存在於一個虛擬機器上。
ServletContext官方叫servlet上下文。伺服器會為每個工程建立一個對象,這個對象就是ServletContext對象。這個物件全域唯一,而且工程內部的所有servlet都共享這個物件。所以叫全域應用程式共享物件。
ServletContext:代表當前web應用(非常重要)
WEB容器在啟動時,它會為每個WEB應用程式都建立一個對應的ServletContext對象,它代表當前web應用。
ServletConfig物件中維護了ServletContext物件的引用,開發人員在編寫servlet時,可以透過ServletConfig.getServletContext方法取得ServletContext物件由於一個WEB應用程式中的所有Servlet共用同一個ServletContext物件,因此Servlet物件之間可以透過ServletContext物件來實現通訊。
ServletContext物件通常也被稱為context域物件。
ServletContext的應用:
context中常用的方法有:
void setAttribute(String,Object);
#Object getAttribute(String );
void removeAttribute(String);
1.做為域物件可以在整個web應用範圍內共享資料。
網域物件:在一個可以被看見的範圍內共享資料用到物件
作用範圍:整個web應用程式範圍內共享資料
生命週期:當伺服器啟動web應用程式載入後建立出ServletContext物件後,域產生。當web應用程式被移除出容器或伺服器關閉,隨著web應用
的銷毀域銷毀。
2、取得WEB應用的初始化參數
我們在第一段中,透過
這裡牽涉到一些概念不要混淆:
請求參數 parameter --- 瀏覽器發送過來的請求中的參數資訊初始化參數 initparameter --- 在web.xml中為Servlet或ServletContext配置的初始化時帶有的基本參數域屬性 attribute --- 四大作用域中存取的鍵值對
程式碼舉例:
在web.xml中為整個web應用新增初始化參數:使用者名稱、密碼。程式碼位置如下:
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里面的初始化参数 String value1 = context.getInitParameter("username"); String value2 = context.getInitParameter("password"); System.out.println(value1 + ";" + value2); System.out.println(); // 一次性获取Context里所有的初始化参数 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()方法來取得初始化參數。
運行效果如下:
以上是ServletContext是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境