91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

    开封市| 花莲市| 开江县| 苏州市| 珠海市| 恩施市| 霸州市| 仲巴县| 集安市| 马关县| 金坛市| 宁明县| 宣城市| 石门县| 松潘县| 汽车| 苏尼特右旗| 渝中区| 沛县| 巴林左旗| 正阳县| 石首市| 咸宁市| 宜城市| 尉氏县| 宁波市| 太原市| 普洱| 万州区| 丹江口市| 平乡县| 遵义县| 清远市| 榆树市| 黔江区| 绥化市| 大姚县| 新绛县| 同心县| 南康市| 清镇市|