1.首先找到ServletConfig的API:

ServletConfig封装了servlet的配置信息,并且可以获取servletContext对象。

ServletConfig共有四个方法:

1.getInitParameter:获取指定初始化名的初始化值。

2.getInitParameterNames():获取所有初始化参数名组成的 Enumeration对象。

3.getServletContext():获取 ServletContext对象。

4.getServletName():获取servlet配置名称。



2.项目的目录结构:







3.HelloServlet.java



package com.dao.chu;

import java.io.IOException;
import java.util.Enumeration; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; /**
*
* Title: HelloServlet Description:实现Servlet接口的类 </p>
*/
public class HelloServlet implements Servlet { @Override
public void destroy() {
System.out.println("destroy...");
} @Override
public ServletConfig getServletConfig() {
System.out.println("getServletConfig...");
return null;
} @Override
public String getServletInfo() {
System.out.println("getServletInfo...");
return null;
} @Override
public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init..."); // 获取参数名为user的参数值
String userValue = servletConfig.getInitParameter("user");
System.out.println("userValue is " + userValue); // 获取参数名为password的参数值
String passwordValue = servletConfig.getInitParameter("password");
System.out.println("passwordValue is " + passwordValue); // 获取配置的所有初始化参数名组成的Enumeration
Enumeration<String> parameterNames = servletConfig
.getInitParameterNames(); // 循环
while (parameterNames.hasMoreElements()) { String name = (String) parameterNames.nextElement();
// 打印所有循环出来的参数名
System.out.println("name is " + name); // 用参数名来获取所有的参数值,并打印出来
String value = servletConfig.getInitParameter(name);
System.out.println("value is " + value); } /* 获取配置的servlet名称 */
String servletName = servletConfig.getServletName();
System.out.println("servletName: " + servletName); } @Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("service..."); } public HelloServlet() {
System.out.println("HelloServlet's constructor..");
} }

4.SecondHelloServlet



package com.dao.chu;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; /**
*
* Title: HelloServlet
* Description:第二个实现Servlet接口的类
* </p>
*/
public class SecondHelloServlet implements Servlet{ @Override
public void destroy() {
System.out.println("second destroy.."); } @Override
public ServletConfig getServletConfig() {
System.out.println("second getServletConfig..");
return null;
} @Override
public String getServletInfo() {
System.out.println("second getServletInfo..");
return null;
} @Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("second init.."); } @Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("second service..");
} public SecondHelloServlet(){
System.out.println("SecondHelloServlet's constructor..");
} }

5.web.xml

<?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"
id="WebApp_ID" version="3.0"> <!-- 配置和映射servlet --> <!-- helloServlet -->
<servlet> <!-- servlet注册的名字 -->
<servlet-name>helloServlet</servlet-name>
<!-- servlet的全类名 -->
<servlet-class>com.dao.chu.HelloServlet</servlet-class> <!-- 配置servlet的初始化参数 ,要放在load-on-startup节点 前面-->
<init-param>
<!-- 参数名 -->
<param-name>user</param-name>
<!-- 参数值 -->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param> <!-- load-on-startup节点 -->
<load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <!-- 需要和某一个servlet子节点的servlet-name 子节点的文本节点一致 -->
<servlet-name>helloServlet</servlet-name>
<!-- 映射的具体访问路径:/代表当前WEB应用的根目录 -->
<url-pattern>/hello</url-pattern> </servlet-mapping> <!-- secondHelloServlet -->
<servlet> <!-- servlet注册的名字 -->
<servlet-name>secondHelloServlet</servlet-name>
<!-- servlet的全类名 -->
<servlet-class>com.dao.chu.SecondHelloServlet</servlet-class>
<!-- load-on-startup节点 -->
<load-on-startup>1</load-on-startup> </servlet>
</web-app>

6.打印信息







6.分析

我们把打印信息分成三块,第1,2块是HelloServlet的执行,第3块是SecondHelloSerclet的执行,他们的先后执行顺序在总结(2)中有详细说明,这里不再叙述。

在第2块中主要运用了ServletConfig对象的getInitParametergetInitParameterNamesgetServletName三个方法,方法的作用已在本文的第1点中说明。



附:

J2EE1.5_API下载地址:点击打开链接

本次javaWeb总结(3)源码:点击打开链接

javaWeb总结(2)源码:点击打开链接

javaWeb总结(1)源码点击打开链接

为了尊重原作者,下面粘贴佟刚老师视频的地址:

点击打开链接

javaWEB总结(3):ServletConfig对象的更多相关文章

  1. [原创]java WEB学习笔记05:Servlet中的ServletConfig对象

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  2. ServletConfig对象详解

    在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数之后,web容器在创建servlet实例对 ...

  3. ServletConfig对象和它在开发中的应用场

    package cn.itcast; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumerat ...

  4. Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象

    本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...

  5. JavaWeb之Servlet: ServletConfig 与 ServletContext

    ServletConfig对象 什么是ServletConfig对象 ServletConfig对象,叫Servlet配置对象.主要用于加载配置文件的初始化参数. 创建时机 ServletConfig ...

  6. HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象

    1 HTTP协议特点   1)客户端->服务端(请求request)有三部份     a)请求行--请求行用于描述客户端的请求方式.请求的资源名称,以及使用的HTTP协议版本号 请求行中的GET ...

  7. servletConfig对象

    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数后,web容器在创建servlet实例对象 ...

  8. ServletConfig对象 【通过此对象获取到web.xml中的信息】

    用途:       1)想让当前的Servlet读取一些在web.xml文件配置的初始化参数时,                      可以使用ServletConfig对象,他是Servlet运 ...

  9. 小谈-—ServletConfig对象和servletContext对象

    一.servletContext概述 servletContext对象是Servlet三大域对象之一,每个Web应用程序都拥有一个ServletContext对象,该对象是Web应用程序的全局对象或者 ...

随机推荐

  1. JQuery笔记(三)选项卡

    通过jq封装的方法,可以更简单的制作一个选项卡 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  2. install webapp2 on Linux outside google app engine.

    Reference: https://webapp-improved.appspot.com/tutorials/quickstart.nogae.html Step 1: install pip S ...

  3. 使用Interface创建的装饰者实现了必需的方法

    很多开发团队也越来越认识到,自动化测试和持续部署可帮助开发团队提高迭代效率和质量.必须要有一份拿的出手的技术.社会不比在学校,上课随便听听,通过考试就行了,实在不行还有补考.在公司里,不是这样的. 正 ...

  4. C# 从零开始 vol.2

    这是第二篇 1:命名空间 命名空间可以理解成类的文件夹,这个命名空间中存放着各种类,当你需要使用到对应的类的时候,就需要导入命名空间后才能使用. 引用:可以理解成添加新的存放类的文件夹,也就是一个项目 ...

  5. Oracle获取时间日期月份星期数

    1.日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; ...

  6. 二十八、oracle 视图

    一.介绍视图是一张虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视 ...

  7. Js的两种post方式

    第一种提交post的方式是传统方式,判断浏览器进行post请求. var xmlobj; //定义XMLHttpRequest对象 function CreateXMLHttpRequest() { ...

  8. Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件(二)

    Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件第二版 上次粗略的写了相同功能的代码,这次整理修复了之前的一些BUG,结构也大量修改 ...

  9. C#获取网页内容 (WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

    获取网页数据有很多种方式.在这里主要讲述通过WebClient.WebBrowser和HttpWebRequest/HttpWebResponse三种方式获取网页内容. 这里获取的是包括网页的所有信息 ...

  10. web.py 学习(-)Rocket web框架

    Rocket是一个轻量级,多线程,符合WSGI规范的web框架. Rocket使用一个线程监听连接,接收到连接之后放到Queue中,有worker线程进行处理. Rocket含有以下属性: metho ...