最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

ServletContext 基礎(chǔ)知識

獲取 ServletContext對象

有兩種方式可以獲?。?/p>

  • 使用 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 標(biāo)簽外面的;

每一個 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ù)別帶上根目錄路徑?。?!

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

記錄日志

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

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

servletContext.log("hellowrodl");

參數(shù)增刪改查

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

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

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

相關(guān)文章

  • java中匿名內(nèi)部類詳解

    java中匿名內(nèi)部類詳解

    這篇文章主要對java中的匿名內(nèi)部類的詳細(xì)總結(jié),需要的朋友可以參考下
    2017-04-04
  • Mybatis分頁插件PageHelper配置及使用方法詳解

    Mybatis分頁插件PageHelper配置及使用方法詳解

    這篇文章主要介紹了Mybatis分頁插件PageHelper配置及使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • IDEA連接postgressql數(shù)據(jù)庫操作

    IDEA連接postgressql數(shù)據(jù)庫操作

    這篇文章主要介紹了IDEA連接postgressql數(shù)據(jù)庫操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實現(xiàn)萬年歷效果

    Java實現(xiàn)萬年歷效果

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)萬年歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java中關(guān)于線程安全的三種解決方式

    Java中關(guān)于線程安全的三種解決方式

    這篇文章主要介紹了Java中關(guān)于線程安全的三種解決方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Spring web集成rabbitmq代碼實例

    Spring web集成rabbitmq代碼實例

    這篇文章主要介紹了Spring web集成rabbitmq代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java SpringBoot高級用法詳解

    Java SpringBoot高級用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java Spring Boot的一些高級用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-09-09
  • Spring全局懶加載的優(yōu)劣及使用方法詳解

    Spring全局懶加載的優(yōu)劣及使用方法詳解

    這篇文章主要介紹了Spring全局懶加載的優(yōu)劣及使用方法詳解,Spring 懶加載是一種延遲加載的機(jī)制,它允許在需要時才創(chuàng)建和初始化對象,而不是在應(yīng)用程序啟動時就立即加載所有對象,通過懶加載,可以提高應(yīng)用程序的性能和資源利用率,需要的朋友可以參考下
    2023-10-10
  • Spring Boot jpa Service層代碼實例

    Spring Boot jpa Service層代碼實例

    這篇文章主要介紹了Spring Boot jpa Service層代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • AsyncHttpClient?ClientStats源碼流程解讀

    AsyncHttpClient?ClientStats源碼流程解讀

    這篇文章主要為大家介紹了AsyncHttpClient?ClientStats源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論

宜城市| 嘉黎县| 大宁县| 连南| 麻栗坡县| 巫山县| 阿拉尔市| 尖扎县| 华蓥市| 黔南| 循化| 酒泉市| 罗源县| 阜平县| 河西区| 武夷山市| 绵竹市| 新竹市| 嘉荫县| 庄河市| 凤冈县| 普兰店市| 平乡县| 吴忠市| 南召县| 黑龙江省| 永定县| 奇台县| 滕州市| 吴堡县| 河北区| 阿勒泰市| 灵璧县| 德格县| 怀化市| 阳西县| 前郭尔| 辛集市| 当阳市| 惠来县| 扶沟县|