ServletConfig接口详解

1年前 (2024-04-28)
Servlet 容器初始化 Servlet 时,会为这个 Servlet 创建一个 ServletConfig 对象,并将 ServletConfig 对象作为参数传递给 Servlet 。通过 ServletConfig 对象即可获得当前 Servlet 的初始化参数信息。

一个 Web 应用中可以存在多个 ServletConfig 对象,一个 Servlet 只能对应一个 ServletConfig 对象,即 Servlet 的初始化参数仅对当前 Servlet 有效。

获得 ServletConfig 对象

获得 ServletConfig 对象一般有 2 种方式:

1. 直接从带参的 init() 方法中提取

public class ServletConfigDemo extends HttpServlet {

private ServletConfig servletConfig;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//获取Servlet得名字

this.servletConfig.getServletName();

}

@Override

public void init(ServletConfig config) throws ServletException {

//从带参init方法中,提取ServletConfig对象

this.servletConfig = config;

}

}

2. 调用 GenericServlet 提供的 getServletConfig() 方法获得

//调用 GenericServlet 提供的 getServletConfig 方法获得 ServletConfig 对象

ServletConfig servletConfig = this.getServletConfig();

ServletConfig 接口

javax.servlet 包提供了一个 ServletConfig 接口,该接口中提供了以下方法。

返回值类型

方法

功能描述

String

getInitParameter(String name)

根据初始化参数名 name,返回对应的初始化参数值。

Enumeration<String>

getInitParameterNames()

返回 Servlet 所有的初始化参数名的枚举,如果该 Servlet 没有初始化参数,则返回一个空的。

ServletContext

getServletContext()

返回一个代表当前 Web 应用的 ServletContext 对象。

String

getServletName()

返回 Servlet 的名字,即 web.xml 中 <servlet-name> 元素的值。

配置 Servlet 初始化参数

配置 Servlet 的初始化参数有 2 种方式:

  1. 使用 web.xml 配置初始化参数;

  2. 使用 @WebServlet 配置初始化参数。

1.使用 web.xml 配置初始化参数

在 web.xml 中可以使用一个或多个 <init-param> 元素为 Servlet 配置初始化参数,代码如下。

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3网站站点" rel="nofollow" />

package net.biancheng.www;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebInitParam;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet(urlPatterns = {"/MyServlet"}, initParams = {@WebInitParam(name = "name", value = "编程帮"),

@WebInitParam(name = "URL", value = "www.biancheng网站站点" rel="nofollow" />

package net.biancheng.www;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Enumeration;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebInitParam;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

*

* @author 编程帮 www.biancheng网站站点" rel="nofollow" /> ServletConfig