ServletConfig介面(二)
研究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; } }