ServletConfig接口(二)

本文深入探讨了ServletConfig接口的作用及其实现原理,详细介绍了其提供的核心方法,并通过具体示例展示了如何在Servlet中使用ServletConfig来获取配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

研究javax.servlet.ServletConfig接口:
    1、javax.servlet.ServletConfig是接口
    2、Apache Tomcat服务器实现了Servlet规范,Tomcat服务器专门写了一个ServletConfig接口的实现类,
    实现类的完整类名:org.apache.catalina.core.StandardWrapperFacade
    3、javaweb程序员在编程的时候,一直是面向ServletConfig接口去完成调用,不需要关心具体的实现类
    4、Tomcat服务器是一个实现了Servlet规范和JSP规范的容器。
    5、ServletConfig接口中有哪些常用的方法?
         --String getInitParameter(String name); // 通过初始化参数的name获取value
         --Enumeration getInitParameterNames();  // 获取所有初始化参数的name
         --String getServletName();  // 获取<servlet-name>servletName</servlet-name>
         --ServletContext getServletContext(); // 获取ServletContext【Servlet上下文】

    6、ServletConfig到底是什么?
       --ServletConfig是一个Servlet对象的配置信息对象,ServletConfig对象中封装了一个Servlet对象的配置信息。
       Servlet对象的配置信息到web.xml文件中。
       --一个Servlet对象对应一个ServletConfig对象,100个Servlet对象对应100个ServletConfig对象。
    7、将init方法上的ServletConfig参数移动到service方法中,因为我们程序员主要编写的方法是service方法,在service方法中我们可能需要使用ServletConfig!!!!
       --在init方法中完成:局部变量config赋值给实例变量config
       --实现getServletConfig方法,提供公开的get方法目的是供子类使用


 

package com.bjpowernode.javaweb.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ServletconfigA implements Servlet {

	 private  ServletConfig config;   // 自己添加的内容
	@Override
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
           this.config=config;
	}

	@Override
	public void service(ServletRequest request, ServletResponse response)
			throws ServletException, IOException {
           ServletConfig config=getServletConfig();
           response.setContentType("text/html;charset=utf-8");
           PrintWriter out=response.getWriter();
           //通过初始化参数的name获取value
           /*String driver=config.getInitParameter("driver");
           String url=config.getInitParameter("url");
           String user=config.getInitParameter("user");
           String password=config.getInitParameter("password");
           
           
           out.print(driver);
           out.print("<br/>");
           out.print(url);
           out.print("<br/>");
           out.print(user);
           out.print("<br/>");
           out.print(password);*/
           //获取所有初始化的名称
          
         /* Enumeration<String> names=config.getInitParameterNames();
          while (names.hasMoreElements()) {
			String  name=names.nextElement();
			String value=config.getInitParameter(name);
			out.print(name+"="+value);
			out.print("<br/>");
			}*/
           
           //获取servlet的Name
			/*String servletName=config.getServletName();
			out.print("<servlet-name>"+servletName+"</servlet-name>");*/
			//获取servletContext
			ServletContext sc=config.getServletContext();
			out.print(sc);
		
          
	}
	@Override
	public void destroy() {

	}
	@Override
	public ServletConfig getServletConfig() {
		return config;
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值