Maison  >  Article  >  Java  >  Qu'est-ce que ServletContext

Qu'est-ce que ServletContext

(*-*)浩
(*-*)浩original
2019-05-06 13:23:0411812parcourir

ServletContext est la plus grande interface de Servlet, présentant la vue Servlet de l'application Web, et l'instance ServletContext est obtenue via la méthode "getServletContext()".

Qu'est-ce que ServletContext

Cet article présentera le rôle de ServletContext, ses méthodes et ses utilisations.

Cours recommandé : Tutoriel Java.

Chaque application sera associée à un objet ServletContext. Lorsque le conteneur est distribué sur plusieurs machines virtuelles, l'application Web aura un objet ServletContext sur chaque machine virtuelle où elle est distribuée. Instance ServletContext. Par défaut, le ServletContext n'est pas distribué et n'existe que sur une seule machine virtuelle.

ServletContext est officiellement appelé contexte de servlet. Le serveur créera un objet pour chaque projet, qui est l'objet ServletContext. Cet objet est globalement unique et partagé par toutes les servlets du projet. On l’appelle donc objet partagé d’application globale.

ServletContext : représente l'application web actuelle (très important)

Lorsque le conteneur WEB démarre, il créera un objet ServletContext correspondant pour chaque application WEB. Il représente le. application Web actuelle.

L'objet ServletConfig maintient une référence à l'objet ServletContext. Lors de l'écriture d'un servlet, les développeurs peuvent obtenir l'objet ServletContext via la méthode ServletConfig.getServletContext puisque tous les servlets d'une application WEB partagent le même objet ServletContext. , La communication entre les objets Servlet peut être réalisée via l'objet ServletContext.

L'objet ServletContext est aussi généralement appelé objet de domaine contextuel.

Application de ServletContext :

Les méthodes couramment utilisées en contexte sont :

void setAttribute(String,Object);

Object getAttribute(String );

void removeAttribute(String);

1. En tant qu'objet de domaine, les données peuvent être partagées dans l'ensemble de l'application Web.

Objets de domaine : objets utilisés pour partager des données dans une plage visible

Portée : partage de données au sein de l'ensemble de l'application Web

Cycle de vie : au démarrage du serveur Après l'objet ServletContext est créé après le chargement de l'application Web, le domaine est généré. Lorsque l'application web est supprimée du conteneur ou que le serveur est arrêté, le domaine est détruit ainsi que la destruction de l'application web

.

2. Obtenez les paramètres d'initialisation de l'application WEB

Dans le premier paragraphe, nous ajoutons les informations de configuration à un seul servlet via la balise Il n'est pas accessible depuis d'autres servlets. Mais si nous utilisons la balise (parallèle à la balise Servlet) pour configurer les propriétés de l'ensemble de l'application Web, alors tous les servlets peuvent accéder aux paramètres qu'elle contient. Par exemple : vous pouvez mettre ici les informations de configuration de la base de données.

Ne confondez pas certains concepts impliqués ici :

Paramètre de requête --- Informations sur le paramètre dans la requête envoyée par le navigateur Paramètre d'initialisation initparameter --- Dans web.xml pour Servlet ou The Attributs de domaine de paramètres de base inclus dans l'initialisation de la configuration ServletContext --- paires clé-valeur accessibles dans les quatre portées principales

Exemple de code :

dans web.xml pour l'ensemble du Web L'application ajoute des paramètres d'initialisation : nom d'utilisateur, mot de passe. L'emplacement du code est le suivant :

Quest-ce que ServletContext

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);
    }
 
 
}

Comme vous pouvez le voir dans le code ci-dessus, nous pouvons obtenir les paramètres d'initialisation via la méthode context.getInitParameter().

L'effet de l'opération est le suivant :

Quest-ce que ServletContext

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn