javaWEB总结(3):ServletConfig对象

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)源码点击打开链接


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

点击打开链接


转载于:https://www.cnblogs.com/tongrui/p/6193834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值