>  기사  >  Java  >  ServletContext 란 무엇입니까?

ServletContext 란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-06 13:23:0411812검색

ServletContext는 웹 애플리케이션의 Servlet 뷰를 제공하는 Servlet에서 가장 큰 인터페이스이며 ServletContext 인스턴스는 "getServletContext()" 메소드를 통해 획득됩니다.

ServletContext 란 무엇입니까?

이 글에서는 ServletContext의 역할과 메소드, 사용법을 소개합니다.

추천 과정: Java 튜토리얼.

각 애플리케이션에는 연결된 ServletContext 개체가 있습니다. 컨테이너가 여러 가상 머신에 배포되면 웹 애플리케이션은 배포되는 각 가상 머신에 ServletContext 개체를 갖게 됩니다. ServletContext 인스턴스. 기본적으로 ServletContext는 분산되지 않으며 하나의 가상 머신에만 존재합니다.

ServletContext는 공식적으로 서블릿 컨텍스트라고 합니다. 서버는 각 프로젝트에 대해 ServletContext 객체인 객체를 생성합니다. 이 개체는 전역적으로 고유하며 프로젝트 내의 모든 서블릿에서 공유됩니다. 그래서 이를 글로벌 애플리케이션 공유 객체라고 합니다.

ServletContext: 현재 웹 애플리케이션을 나타냅니다(매우 중요).

WEB 컨테이너가 시작되면 현재 웹 애플리케이션을 나타내는 각 WEB 애플리케이션에 해당하는 ServletContext 개체가 생성됩니다.

ServletConfig 객체는 ServletContext 객체에 대한 참조를 유지 관리합니다. 개발자는 ServletConfig.getServletContext 메소드를 통해 ServletContext 객체를 얻을 수 있습니다. WEB 애플리케이션의 모든 Servlet은 동일한 ServletContext 객체를 공유할 수 있습니다. 통신을 구현하는 ServletContext 객체입니다.

ServletContext 개체는 일반적으로 컨텍스트 도메인 개체라고도 합니다.

ServletContext 적용:

컨텍스트에서 일반적으로 사용되는 메서드는 다음과 같습니다.

void setAttribute(String,Object);

Object getAttribute(String);

void RemoveAttribute(String);

1. 전체 웹 애플리케이션에서 데이터를 공유할 수 있습니다.

Domain 객체: 가시 범위 내에서 데이터를 공유하는 데 사용되는 객체

범위: 전체 웹 애플리케이션 내에서 데이터 공유

Life Cycle: 서버가 웹 애플리케이션을 시작하고 로딩 후 ServletContext 객체를 생성하면 도메인이 생성됩니다. 웹 애플리케이션이 컨테이너에서 제거되거나 서버가 종료되면 웹 애플리케이션이 파괴됨에 따라 도메인도 파괴됩니다

.

2. 웹 애플리케이션의 초기화 매개변수 가져오기

첫 번째 단락에서는 태그를 통해 단일 서블릿에 구성 정보를 추가합니다. 그러나 전체 웹 애플리케이션에 대한 속성을 구성하기 위해 태그(서블릿 태그와 병렬)를 사용하면 모든 서블릿이 내부 매개변수에 액세스할 수 있습니다. 예를 들어 여기에 데이터베이스 구성 정보를 넣을 수 있습니다.

여기에는 몇 가지 개념이 포함되어 있으므로 혼동하지 마십시오.

요청 매개변수 매개변수 --- 브라우저가 보낸 요청의 매개변수 정보 초기화 매개변수 initparameter --- web.xml에서 Servlet 또는 ServletContext 구성을 초기화하는 동안 포함됩니다. 기본 매개변수 도메인 속성 속성 --- 네 가지 주요 범위에서 액세스되는 키-값 쌍

코드 예:

web.xml에서 전체 웹 애플리케이션에 대한 초기화 매개변수(사용자 이름, 비밀번호)를 추가합니다. 코드 위치는 다음과 같습니다.

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

위 코드에서 볼 수 있듯이 context.getInitParameter() 메소드를 통해 초기화 매개변수를 얻을 수 있습니다.

작동 효과는 다음과 같습니다.

ServletContext 란 무엇입니까?

위 내용은 ServletContext 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.