欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaWeb ServletContext基礎(chǔ)與應(yīng)用詳細講解

 更新時間:2023年01月05日 10:36:30   作者:知奕奕  
ServletConfig對象,叫Servlet配置對象。主要用于加載配置文件的初始化參數(shù)。我們知道一個Web應(yīng)用里面可以有多個servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對象了

ServletContext 基礎(chǔ)知識

獲取 ServletContext對象

有兩種方式可以獲取:

  • 使用 servletconfig 對象獲取
  • 使用 servlet 上下文獲取
// 第一種方式
ServletContext app1 = config.getServletContext();
writer.println("<br>" + app1);
// 第二種方式
ServletContext app2 = this.getServletContext();
writer.println("<br>" + app2);

特性

  • 一個 webapp 只存在一個 ServletContext 對象
  • ServletContext 對象是由 web 服務(wù)器啟動時創(chuàng)建
  • ServletContext 是一個接口,他依然遵循 servlet 規(guī)范
  • ServletContext 在 web 服務(wù)器銷毀時才會銷毀
  • ServletContext 存儲了 整個 web.xml 的信息

context-param

和 servletconfig 一樣,他也可以獲取與 web.xml 中定義的參數(shù);

只不過 ServletContext 定義的參數(shù)是寫在 servlet 標簽外面的;

每一個 context-param 都代表一個 key-value;

如果需要多個參數(shù)就必須要 分別寫 context-param

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <!-- 定義了兩個外部參數(shù) -->
    <context-param>
        <param-name>pageSize</param-name>
        <param-value>10</param-value>
    </context-param>
    <context-param>
        <param-name>porkPrice</param-name>
        <param-value>999</param-value>
    </context-param>
    ...
</web-app>

同樣的,我們可以使用 Enumeration 獲取所有的 context-param,然后再使用迭代器的方法一次獲取其中的 keyvalue

package com.zhiyiyi.javaweb.servlet;
import jakarta.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
public class AServlet extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        servletResponse.setContentType("text/html");
        PrintWriter writer = servletResponse.getWriter();
        ServletContext servletContext = this.getServletContext();
        // 迭代輸出param-name和param-value
        Enumeration<String> initParameterNames = servletContext.getInitParameterNames();
        while (initParameterNames.hasMoreElements()) {
            String key = initParameterNames.nextElement();
            String value = servletContext.getInitParameter(key);
            writer.println(key + " " + value + "<br>");
        }
    }
}

可見,context-param 定義的是 webapp 內(nèi)共享的配置信息,而 servlet-name 更適用于僅供單個 servlet 使用

獲取文件路徑

獲取根路徑,即我們配置 web 服務(wù)器時設(shè)置的路徑

// 獲取web的根路徑
String contextPath = servletContext.getContextPath();
writer.println("<br>" + contextPath);

獲取指定文件的絕對路徑;

getRealPath 接收一個路徑作為參數(shù),這個路徑的起始點是 web 文件夾,下方代碼指的是 web/index.html 這個文件

注意注意!getRealPath 的參數(shù)別帶上根目錄路徑!?。?/p>

// 獲取絕對路徑
String realPath = servletContext.getRealPath("/index.html");
writer.println("<br>" + realPath);

記錄日志

可以使用 log 方法記錄日志;

日志保存位置為 tomcat 根目錄下/logs

servletContext.log("hellowrodl");

參數(shù)增刪改查

我們可以直接在 servlet 中直接對 context-param 進行增添、查找、刪除?。?!

// 以鍵值對的方式添加參數(shù)
servletContext.setAttribute("name","tom");
// 獲取參數(shù)
Object name = servletContext.getAttribute("name");
// 刪除參數(shù)
servletContext.removeAttribute("name");

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

相關(guān)文章

  • springBoot2.6.2自動裝配之注解源碼解析

    springBoot2.6.2自動裝配之注解源碼解析

    對于springboot個人認為它就是整合了各種組件,然后提供對應(yīng)的自動裝配和啟動器(starter),基于這個流程去實現(xiàn)一個定義的裝配組件,下面這篇文章主要給大家介紹了關(guān)于springBoot2.6.2自動裝配之注解源碼解析的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明

    Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明

    這篇文章主要介紹了Java構(gòu)造器(構(gòu)造方法)與方法區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java常見面試題及答案匯總

    java常見面試題及答案匯總

    本文提供Java面試題集錦,涵蓋封裝、繼承、多態(tài)等核心概念,旨在幫助求職者全面復(fù)習(xí),提升面試表現(xiàn),從基礎(chǔ)知識到實際應(yīng)用,內(nèi)容豐富,適合各類求職者,需要的朋友可以參考下
    2024-09-09
  • java合并多個文件的兩種方法

    java合并多個文件的兩種方法

    這篇文章主要為大家詳細介紹了java合并多個文件的兩種方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • springboot中.yml文件參數(shù)的讀取方式

    springboot中.yml文件參數(shù)的讀取方式

    這篇文章主要介紹了springboot中.yml文件參數(shù)的讀取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java如何自動補齊數(shù)值至指定位數(shù)

    java如何自動補齊數(shù)值至指定位數(shù)

    這篇文章主要介紹了java如何自動補齊數(shù)值至指定位數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java實現(xiàn)IP地址到二進制的轉(zhuǎn)換

    Java實現(xiàn)IP地址到二進制的轉(zhuǎn)換

    這篇文章主要為大家詳細介紹了Java實現(xiàn)IP地址到二進制的轉(zhuǎn)換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Spring的IOC控制反轉(zhuǎn)詳解

    Spring的IOC控制反轉(zhuǎn)詳解

    這篇文章主要為大家介紹了Spring的IOC控制反轉(zhuǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2022-01-01
  • Java基礎(chǔ)之類型封裝器示例

    Java基礎(chǔ)之類型封裝器示例

    這篇文章主要介紹了Java基礎(chǔ)之類型封裝器,結(jié)合實例形式分析了java類型封裝相關(guān)原理與操作技巧,需要的朋友可以參考下
    2019-08-08
  • 基于java Servlet編碼/異常處理(詳解)

    基于java Servlet編碼/異常處理(詳解)

    下面小編就為大家?guī)硪黄趈ava Servlet編碼/異常處理(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論