基本概念

  • 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;
}
}

  

JavaWeb基础: ServletConfig的更多相关文章

  1. JavaWeb基础: ServletContext

    基本概念 Web容器在启动时,会为每个Web应用程序都创建一个对应的ServletContext对象,它代表当前Web应用. ServletContext(javax.servlet.http.Ser ...

  2. JavaWeb基础知识总结

    JavaWeb基础知识总结.   1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供 ...

  3. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  4. JavaWeb基础: 学习大纲

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

  5. 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总

    作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...

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

    1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...

  7. 25天javaweb基础

    第一天(html) 表格标签,超链接标签,图片标签,排版标签,列表标签 第二天(css) 表单标签 第三天(JS) js语法 定时器(系统对象的定时器setinterval,js的定时器seTimeo ...

  8. JavaWeb基础—过滤器Filter

    一.概念 JavaWeb三大组件之一(组件都有一个特性,需要在web.xml中配置) 过滤器:会在一组资源(jsp servlet等)的前面执行,可以让请求得到目标资源,也可以终止请求,不再继续 也就 ...

  9. JavaWeb基础

    1.Servlet: Servlet是JavaWeb的3大组件之一,是把url请求转为后台处理的具体类,此类必须实现Servlet接口,一把实际使用时无须我们实现,我们直接使用JavaEE的HTTPS ...

随机推荐

  1. Metro 页面间跳转报错、打包和安装一个本地的Metro类型应用

    1.模板页面间传值跳转报错误 参照:http://www.cnblogs.com/dagehaoshuang/archive/2012/08/31/2665166.html#2862480 强烈推荐, ...

  2. broadcom代码中httpd进程启动流程介绍

    Broadcom代码中包含WEB配置管理媒介, 在嵌入式WEB服务器min_httpd基础上改造实现, 其bin名称为httpd,此httpd可以由管理进程有连接后动态启动,并且当一段时间内没有连接到 ...

  3. 献给初学者:谈谈如何学习Linux操作系统

    本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...

  4. 多列布局——column-count

    column-count属性主要用来给元素指定想要的列数和允许的最大列数.其语法规则: column-count:auto | <integer> 取值说明: 属性值 属性值说明 auto ...

  5. 获取访问者ip的方法

    package com.mi.util; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.S ...

  6. JS中Float类型加减乘除 修复

    MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  7. php学习01

  8. 04-时序逻辑电路设计之计数器——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线--普利斯队长精心奉献 实验目的:以计数器为例学会简单的时序逻辑电路设计 实验平台:芯航线FPGA核心板 实验原理: 时序逻辑电路是指电路任何时刻的稳态输出不仅取决于当前的输入,还与前一时刻输入 ...

  9. 图论$\cdot$最短路问题

    Dijkstra单源最短路径算法 Dijkstra可以计算出发点到每个点的最短路,及单源最短路径(SSSP).这一特点使得Dijkstra常常用来进行其他算法的预处理.用Dijkstra算法计算最短路 ...

  10. WSDL2ObjC Unsupported Media Type

    调用WCF服务时,出这样的异常“415 Unsupported Media Type”, Because the WCF soap is v1.1, the http header should be ...