中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java?Web中ServletContext對象怎么應用

發布時間:2023-04-26 11:47:16 來源:億速云 閱讀:62 作者:iii 欄目:開發技術

這篇文章主要講解了“Java Web中ServletContext對象怎么應用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java Web中ServletContext對象怎么應用”吧!

     ServletContext對象

    Web 應用中的所有 Servlet 共享同一個 ServletContext 對象,不同 Servlet 之間可以通過 ServletContext 對象實現數據通訊,因此 ServletContext 對象也被稱為 Context 域對象。

    域對象是服務器在內存上創建的存儲空間,該空間用于不同動態資源(例如 Servlet、JSP)之間傳遞與共享數據。

     獲取上下文初始化參數的相關方法

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

    創建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();

    上下文初始化參數

    局部參數

        <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>

    全局參數

        <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的全局參數

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

    ServletContext 屬性與上下文初始化參數對比

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

    實現數據通訊

    在 Servlet 中,調用 ServletContext 接口的 setAttribute() 方法可以創建一些屬性,這些屬性被存 放在 ServletContext 對象中。應用中所有 Servlet 都可以對這些屬性進行訪問和操作,通過它們可以實現應用內不同 Servlet 之間的數據通訊。

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

    數據通訊的程序實例:

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

    在瀏覽器中的操作

    Java?Web中ServletContext對象怎么應用

    Java?Web中ServletContext對象怎么應用

    感謝各位的閱讀,以上就是“Java Web中ServletContext對象怎么應用”的內容了,經過本文的學習后,相信大家對Java Web中ServletContext對象怎么應用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    离岛区| 手游| 若尔盖县| 逊克县| 霍林郭勒市| 芜湖市| 赤水市| 昌图县| 独山县| 珲春市| 阜康市| 屏南县| 龙州县| 基隆市| 临安市| 玉山县| 嘉鱼县| 酒泉市| 镇巴县| 互助| 龙游县| 随州市| 分宜县| 康平县| 洮南市| 嘉定区| 丹东市| 柞水县| 洛南县| 射阳县| 沙田区| 竹山县| 泗水县| 武乡县| 萨嘎县| 澄迈县| 德安县| 富宁县| 柘荣县| 扶绥县| 横山县|