ServletContext ist die größte Schnittstelle in Servlet und stellt die Servlet-Ansicht der Webanwendung dar. Die ServletContext-Instanz wird über die Methode „getServletContext()“ abgerufen.
In diesem Artikel werden die Rolle von ServletContext, seine Methoden und seine Verwendung vorgestellt.
Empfohlener Kurs: Java-Tutorial.
Jeder Anwendung ist ein ServletContext-Objekt zugeordnet. Wenn der Container auf mehrere virtuelle Maschinen verteilt ist, verfügt die Webanwendung auf jeder virtuellen Maschine über ein ServletContext-Objekt. ServletContext-Instanz. Standardmäßig wird der ServletContext nicht verteilt und existiert nur auf einer virtuellen Maschine.
ServletContext wird offiziell Servlet-Kontext genannt. Der Server erstellt für jedes Projekt ein Objekt, das ServletContext-Objekt. Dieses Objekt ist global eindeutig und wird von allen Servlets innerhalb des Projekts gemeinsam genutzt. Daher wird es als globales gemeinsam genutztes Anwendungsobjekt bezeichnet.
ServletContext: stellt die aktuelle Webanwendung dar (sehr wichtig)
Wenn der WEB-Container startet, erstellt er für jede WEB-Anwendung ein entsprechendes ServletContext-Objekt aktuelle Webanwendung.
Das ServletConfig-Objekt verwaltet einen Verweis auf das ServletContext-Objekt. Beim Schreiben eines Servlets können Entwickler das ServletContext-Objekt über die ServletConfig.getServletContext-Methode abrufen, da alle Servlets in einer WEB-Anwendung dasselbe ServletContext-Objekt verwenden , Die Kommunikation zwischen Servlet-Objekten kann über das ServletContext-Objekt erreicht werden.
Das ServletContext-Objekt wird normalerweise auch als Kontextdomänenobjekt bezeichnet.
Anwendung von ServletContext:
Häufig verwendete Methoden im Kontext sind:
void setAttribute(String,Object);
Object getAttribute(String );
void removeAttribute(String);
1 Als Domänenobjekt können Daten in der gesamten Webanwendung gemeinsam genutzt werden.
Domänenobjekte: Objekte, die zum Teilen von Daten innerhalb eines sichtbaren Bereichs verwendet werden
Geltungsbereich: Teilen von Daten innerhalb der gesamten Webanwendung
Lebenszyklus: Wenn der Server startet Nach dem ServletContext-Objekt Wird nach dem Laden der Webanwendung erstellt, wird die Domain generiert. Wenn die Webanwendung aus dem Container entfernt oder der Server heruntergefahren wird, wird die Domäne zusammen mit der Zerstörung der Webanwendung zerstört
.
2. Erhalten Sie die Initialisierungsparameter der WEB-Anwendung
Im ersten Absatz fügen wir Konfigurationsinformationen zu einem einzelnen Servlet über das Tag
Verwechseln Sie einige hier beteiligte Konzepte nicht:
Anforderungsparameter Parameter --- Parameterinformationen in der vom Browser gesendeten Anforderung Initialisierungsparameter initparameter --- In web.xml für Servlet oder The Grundlegende Parameterdomänenattribute, die in der Initialisierung der ServletContext-Konfiguration enthalten sind --- Schlüssel-Wert-Paare, auf die in den vier Hauptbereichen zugegriffen wird
Codebeispiel:
in web.xml für das gesamte Web Die Anwendung fügt Initialisierungsparameter hinzu: Benutzername, Passwort. Der Codespeicherort ist wie folgt:
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); } }
Wie Sie dem obigen Code entnehmen können, können wir die Initialisierungsparameter über die Methode context.getInitParameter() abrufen.
Der Betriebseffekt ist wie folgt:
Das obige ist der detaillierte Inhalt vonWas ist ServletContext?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!