研究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;
}
}