基本概念

  • 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. VirtualBox Win7 虚拟机 共享文件夹设置

    1.主机(Win10) 点击共享文件夹,例如D:\VMs\Sharefolder\,选择'属性->共享->共享',选择'Everyone',点击'添加',权限级别'读取/写入',然后一路点 ...

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

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

  3. Matlab的XTickLabel中数值带下标

    %axis为'x'或'y',分别表示更改x或y刻度 %ticks是字符cell function settick(axis,ticks) n=length(ticks); tkx=get(gca,'X ...

  4. Leetcode: Assign Cookies

    Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...

  5. windows系统调用 调度优先级

    #include "iostream" #include "windows.h" using namespace std; class CWorkerThrea ...

  6. Ruby(rails)win环境下安装

    1.RubyInstaller 在RubyInstaller官网下载window版本安装,地址:http://rubyinstaller.org/downloads/  执行安装程序,勾选Add Ru ...

  7. 【svn】一个设置,少写几个字

    以下场景仅适用于修改bug的时候,在提交代码的时候少写几个字,嘿嘿: 1.打开[SVN 属性],在代码目录右键 2.打开BUG跟踪设置窗口 3.输入BUG的URL前缀以及%BUGID%,如 复选框,建 ...

  8. 关于ScrollView和listview的冲突关于的滑动和宽度

    listview和ScrollView嵌套有两个冲突,关于listview显示不全的问题和listview和scrollview的滑动冲突 自定义listview package com.exmple ...

  9. maven常见错误

    摘要: 1.Java-maven异常-cannot be cast to javax.servlet.Filter 报错  tomcat 启动后先将tomcat/lib目录下的jar包全部读入内存,如 ...

  10. UBUNTU下Y86模拟器的安装和使用

    UBUNTU下Y86模拟器的安装和使用 由于上周在虚拟机中安装Y86模拟器中出现了一些问题并且没得到解决,所以上周实验是在实验楼上做的,这几天练习了UBUNTU下Y86模拟器的安装和使用. 参考博客: ...