首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Servlet 獲取 web.xml 中 context-param 與 init-param 參數完整指南

     編輯:Java 相關知識

web.xml 參數類型區分

web.xml 中可定義兩種範圍的初始化參數:

1. 應用層級參數:context-param

儲存在 ServletContext 中,全應用程式可見。

<context-param>
    <param-name>context/param</param-name>
    <param-value>avalible during application</param-value>
</context-param>

2. Servlet 層級參數:init-param

僅在對應 Servlet 的 init() 方法中可取得。

<servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>com.wes.controller.MainServlet</servlet-class>
    <init-param>
        <param-name>param1</param-name>
        <param-value>avalible in servlet init()</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>

Servlet 程式碼取得參數

package com.qisentech.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class MainServlet extends HttpServlet {
    public void init() throws ServletException {
        // 取得 Servlet 專屬 init-param
        System.out.println(this.getInitParameter("param1"));
        // 取得全域 context-param
        System.out.println(getServletContext().getInitParameter("context/param"));
    }
}

關鍵差異總結

參數類型定義位置取得方法可見範圍
context-param<web-app> 直屬getServletContext().getInitParameter()整個 Web 應用
init-param<servlet> 內部this.getInitParameter()僅該 Servlet

正確區分兩者範圍,避免在錯誤生命週期或錯誤上下文中取值導致 null。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved