首頁  >  文章  >  Java  >  ServletContext是什麼

ServletContext是什麼

(*-*)浩
(*-*)浩原創
2019-05-06 13:23:0411934瀏覽

servletContext是Servlet中最大的一個接口,呈現了web應用的Servlet視圖,而ServletContext實例是透過「getServletContext()」方法獲得的。

ServletContext是什麼

本篇文章將介紹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應用的初始化參數

我們在第一段中,透過標籤為某一個單獨的servlet加上配置訊息,這種設定資訊在其他的Servlet中是無法存取到的。可是如果我們使用標籤(與Servlet標籤並列)為整個Web應用程式配置屬性的話,那麼所有的Servlet就都能存取裡面的參數了。例如:可以把資料庫的設定資訊放在這裡。

這裡牽涉到一些概念不要混淆:

請求參數 parameter --- 瀏覽器發送過來的請求中的參數資訊初始化參數 initparameter --- 在web.xml中為Servlet或ServletContext配置的初始化時帶有的基本參數域屬性 attribute --- 四大作用域中存取的鍵值對

程式碼舉例:

在web.xml中為整個web應用新增初始化參數:使用者名稱、密碼。程式碼位置如下:

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