亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?Web中ServletContext對象詳解與應(yīng)用

 更新時間:2023年04月26日 10:32:02   作者:Lungcen  
ServletContext是一個容器,可以用來存放變量,供一個web項目中多個Servlet共享,下面這篇文章主要給大家介紹了關(guān)于Java?Web中ServletContext對象詳解與應(yīng)用的相關(guān)資料,需要的朋友可以參考下

 ServletContext對象

Web 應(yīng)用中的所有 Servlet 共享同一個 ServletContext 對象,不同 Servlet 之間可以通過 ServletContext 對象實現(xiàn)數(shù)據(jù)通訊,因此 ServletContext 對象也被稱為 Context 域?qū)ο蟆?/strong>

域?qū)ο笫欠?wù)器在內(nèi)存上創(chuàng)建的存儲空間,該空間用于不同動態(tài)資源(例如 Servlet、JSP)之間傳遞與共享數(shù)據(jù)。

 獲取上下文初始化參數(shù)的相關(guān)方法

StringgetInitParameter(String name)根據(jù)初始化參數(shù)名 name,返回對應(yīng)的初始化參 數(shù)值。
EnumerationgetInitParameterNames()返回 Web 應(yīng)用所有上下文初始化參數(shù)名的枚舉 集合,如果沒有上下文初始化參數(shù),則返回一個空的枚舉集合。

創(chuàng)建ServletContext對象  

1)通過 GenericServlet 提供的 getServletContext() 方法

//通過 GenericServlet的getServletContext方法獲取ServletContext對象
ServletContext servletContext = this.getServletContext();

2)通過 ServletConfig 提供的 getServletContext() 方法

//通過 ServletConfig的 getServletContext方法獲取ServletContext對象
ServletContext servletContext = this.getServletConfig().getServletContext();
//通過 Config的 getServletContext方法獲取ServletContext對象
ServletContext context = config.getServletContext();

3)通過 HttpSession 提供的 getServletContext() 方法

//通過 Session的 getServletContext方法獲取ServletContext對象
ServletContext context = req.getSession().getServletContext();

4)通過 HttpServletRequest 提供的 getServletContext() 方法

//通過 HttpServletRequest的 getServletContext方法獲取ServletContext對象
ServletContext servletContext = req.getServletContext();

上下文初始化參數(shù)

局部參數(shù)

    <servlet>
        <init-param>
            <param-name>name</param-name>
            <param-value>Lungcen</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-value>110120130</param-value>
        </init-param>
    </servlet>

全局參數(shù)

    <context-param>
        <param-name>姓名</param-name>
        <param-value>Lungcen</param-value>
    </context-param>
    <context-param>
        <param-name>年齡</param-name>
        <param-value>19</param-value>
    </context-param>

 獲取ServletContext的全局參數(shù)

Enumeration<String> names = this.context.getInitParameterNames();
        
        while (names.hasMoreElements())
        {
            String s = names.nextElement();
            writer.write(s + "->" + context.getInitParameter(s) + "<br/>");
        }

ServletContext 屬性與上下文初始化參數(shù)對比

不 同 點ServletContext 的屬性上下文初始化參數(shù)
創(chuàng) 建 方 式ServletContext 的屬性通過調(diào)用 ServletContext 接口的 setAttribute() 方法 創(chuàng)建上下文初始化參數(shù)通過 web.xml 使用 元素配置
可 進 行 的 操 作ServletContext 的屬性可以通過 ServletContext 接口的方法進行讀取、新 增、修改、移除等操作上下文初始化參數(shù)在容器啟動后只能被 讀取,不能進行新增、修改和移除操作
生 命 周 期ServletContext 中屬性的生命周期從創(chuàng)建開 始,到該屬性被移除(remove)或者容器關(guān) 閉結(jié)束上下文初始化參數(shù)的生命周期,從容器 啟動開始,到 Web 應(yīng)用被卸載或容器 關(guān)閉結(jié)束
作 用使用 ServletContext 中的屬性可以實現(xiàn) Servlet 之間的數(shù)據(jù)通訊使用上下文初始化參數(shù)無法實現(xiàn)數(shù)據(jù)通訊

實現(xiàn)數(shù)據(jù)通訊

在 Servlet 中,調(diào)用 ServletContext 接口的 setAttribute() 方法可以創(chuàng)建一些屬性,這些屬性被存 放在 ServletContext 對象中。應(yīng)用中所有 Servlet 都可以對這些屬性進行訪問和操作,通過它們可以實現(xiàn)應(yīng)用內(nèi)不同 Servlet 之間的數(shù)據(jù)通訊。

voidsetAttribute(String name, Object object)把一個 Java 對象與一個屬性名綁定,并將它作為一個屬 性存放到 ServletContext 中。 參數(shù) name 為屬性名,參數(shù) object 為屬性值。
voidremoveAttribute(String name)從 ServletContext 中移除屬性名為 name 的屬性。
ObjectgetAttribute(String name)根據(jù)指定的屬性名 name,返回 ServletContext 中對應(yīng) 的屬性值。

數(shù)據(jù)通訊的程序?qū)嵗?/h3>
package com.zpark.servlet;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
 
@WebServlet(urlPatterns = "/LLL.do")
public class MyServlet04 extends HttpServlet {
 
    @Override
    public void init() throws ServletException {
        getServletContext().setAttribute("count", 0);
    }
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        Integer count = (Integer) getServletContext().getAttribute("count");
        count++;
        getServletContext().setAttribute("count", count);
 
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.write("歡迎來到界面" + count);
        writer.close();
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        doGet(req, resp);
    }
}
package com.zpark.servlet;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
 
@WebServlet("/Lun5.do")
public class MyServlet05 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        Integer count = (Integer) getServletContext().getAttribute("count");
        writer.write("今天是一個好日子" + count);
        writer.close();
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        doGet(req, resp);
    }
}

在瀏覽器中的操作

總結(jié) 

到此這篇關(guān)于Java Web中ServletContext對象詳解與應(yīng)用的文章就介紹到這了,更多相關(guān)Java Web ServletContext對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Volatile關(guān)鍵字能保證原子性嗎

    Java中Volatile關(guān)鍵字能保證原子性嗎

    這篇文章主要介紹了Java中Volatile關(guān)鍵字能保證原子性嗎,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • APP轉(zhuǎn)盤抽獎Java服務(wù)端接口詳解

    APP轉(zhuǎn)盤抽獎Java服務(wù)端接口詳解

    這篇文章主要為大家詳細(xì)介紹了APP轉(zhuǎn)盤抽獎Java服務(wù)端接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java設(shè)計模式之策略模式深入刨析

    Java設(shè)計模式之策略模式深入刨析

    策略模式屬于Java 23種設(shè)計模式中行為模式之一,該模式定義了一系列算法,并將每個算法封裝起來,使它們可以相互替換,且算法的變化不會影響使用算法的客戶。本文將通過示例詳細(xì)講解這一模式,需要的可以參考一下
    2022-05-05
  • 最新評論