JavaWeb基础: ServletConfig

基本概念

  • ServletConfig用于配置Servlet的参数:在Servlet的配置文件中,可以使用一个或者是多个<init-param> 标签为Servlet配置一些初始化参数。当有些Servlet参数需要灵活可配置时,就可以用ServletConfig来实现。
  • 当配置完这些初始化参数后,Tomcat在创建Servlet实例对象时回自动的将这些参数封装到ServletConfig当中,并在调用Servlet的初始化方法时将ServletConfig对象传递给Servlet。
  • 开发人员可以通过ServletConfig对象获取当前Servlet初始化的参数信息。
  • ServletConfig 可以用来配置Servlet的编码属性/数据库连接属性/配置文件的路径,因为它是针对单个Servlet的配置,在实际开发并不经常被使用。

示例:配置FirstServletConfig的初始化参数

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

    <servlet>
        <servlet-name>FirstServletConfig</servlet-name>
        <servlet-class>servletConfig.FirstServletConfig</servlet-class>
        <!-- init-param的key-value paris可以通过ServletConfig传递到Servlet中 -->
        <init-param>
            <param-name>testServletConfig</param-name>
            <param-value>GetFirstServletConfig</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>FirstServletConfig</servlet-name>
        <url-pattern>/FirstServletConfig</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>OverrideServletConfig</servlet-name>
        <servlet-class>servletConfig.OverrideServletConfig</servlet-class>
        <!-- init-param的key-value paris可以通过ServletConfig传递到Servlet中 -->
        <init-param>
            <param-name>OverrideServletConfig</param-name>
            <param-value>OverrideServletConfig</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>OverrideServletConfig</servlet-name>
        <url-pattern>/OverrideServletConfig</url-pattern>
    </servlet-mapping>
</web-app>

 示例:通过 this.getServletConfig() 获取传递进来的ServletConfig对象

package servletConfig;

import java.util.Enumeration;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
 * 1.在web-xml中的servlet下面配置<init-param>
 * 2.获取ServletConfig对象:this.getServletConfig() 或者是申明ServletConfig config,然后重写初始化方法,直接调用config对象。(二选一,不能共存)
 * 3.通过config.getInitParameter(name) 获取特定初始化参数 或者是 config.getInitParameterNames()获取所有初始化参数名
 *
 */
public class FirstServletConfig extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		enumServletConfigInitParams();
	}

	public void enumServletConfigInitParams() {
		// 通过this.getServletConfig() 获取Tomcat传递的ServletConfig对象
		Enumeration<String> initParas = this.getServletConfig().getInitParameterNames();
		String name, value;
		while (initParas.hasMoreElements()) {
			name = initParas.nextElement();
			value = this.getServletConfig().getInitParameter(name);
			System.out.println("name:" + name);
			System.out.println("value:" + value);
		}
	}

}

示例:通过重载Servlet初始化方法,获取传递进来的ServletConfig对象

package servletConfig;

import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OverrideServletConfig extends HttpServlet{

	private ServletConfig config;

	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		getServletConfigInitParamByName();
	}
	public void getServletConfigInitParamByName() {
		//通过输入特定的初始化参数名称获得初始化参数值
		String value = this.config.getInitParameter("OverrideServletConfig");
		System.out.println("value:" + value);

	}
	//重写了Servlet的初始化方法,把服务器封装的ServletConfig传递给了当前Servlet的私有Config对象
	//一旦重写了此方法,不能够再调用 this.getServletConfig()获取当前Servlet的ServletConfig对象,只能通过传递过来的私有变量config来操作。
	public void init(ServletConfig config){
		this.config=config;
	}
}

  

时间: 2024-08-25 10:49:22

JavaWeb基础: ServletConfig的相关文章

JavaWeb基础: 学习大纲

JavaWeb基础: Web应用和Web服务器 JavaWeb基础: Tomcat JavaWeb基础:HTTP协议和基于Restful的架构 JavaWeb基础: Web工程配置文件 JavaWeb基础:Servlet JavaWeb基础:Servlet Request JavaWeb基础:Servlet Response JavaWeb基础: Cookie

(一)JavaWeb基础知识

JavaWeb基础知识 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 1.静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 2.动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. 静态web资源开发技术:Html 常用动态web资源开发技术:JSP/Servlet.ASP.P

[Java面试三]JavaWeb基础知识总结.

1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. l 静态web资源开发技术 • Html l 常用动态web资源开发技术: • JSP/Servlet.ASP

JavaWeb基础

程序开发体系 B/S 浏览器/服务器 开发维护成本低 客户端负载低 安全性低 C/S 客户端/服务器 成本高 客户端负载高 安全性高 javaweb简介 静态网页 HTML CSS,人浏览的数据是始终不变的,服务器保存的静态页面 动态网页 根据用户的请求生成动态页面,HTML CSS 数据库技术 一门高级语言(java C# Php),js,xml 动态网页脚本技术(Jsp/Asp.net/Php) web服务器 指英特网上某种类型的计算机程序,可以向提出请求的浏览器提供文档的程序,服务器是一种

[JavaWeb基础] 008.Spring初步配置

框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而

深入分析JavaWeb Item6 -- servletConfig 与servletContext详解

一.ServletConfig讲解 首先看ServletConfig API文档 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: <servlet> <servlet-name>ServletConfigDemo1</servlet-name> <servlet-class>gacl.servlet.study.Servl

javaweb基础(23)_jsp自定义标签

一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 package me.gacl.web.tag; 2 3 import java.io.IOException; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.jsp.JspException; 7 import

javaweb基础(6)_servlet配置参数

一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: 1 <servlet> 2 <servlet-name>ServletConfigDemo1</servlet-name> 3 <servlet-class>gacl.servlet.study.ServletConfigDemo1<

深入分析JavaWeb Item6 — servletConfig 与servletContext详

一.ServletConfig讲解首先看ServletConfig API文档 1.1.配置Servlet初始化参数在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: <servlet><servlet-name>ServletConfigDemo1</servlet-name><servlet-class>gacl.servlet.study.ServletCo