1. 程式人生 > >ServletConfig介面(二)

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

	

}