Servlet中的重要对象——ServletConfig对象

当servlet配置了初始化参数后,web容器在创建servlet对象的时候会自动将这些初始化参数分装到ServletConfig对象当中去,并在调用servlet的init方法的时候将ServletConfig对象传递给servlet,进而程序员可以通过ServletConfig对象就可以获得web应用的初始化参数。

1.如何去获取当前web应用的ServletConfig对象?

通过观察Genericservlet的源码,我们可以看到在GenericServlet中将ServletConfig对象作为了类变量,并且有getServletConfig方法可以获取ServletConfig对象。因此作为GenericServlet的子类,HttpServlet亦可以通过这个方法来获得ServletConfig对象。

ServletConfig config=this.getServletConfig();
2.ServletConfig对象当中的几个比较重要的方法:

config.getServletName()//获取当前servlet在web.xml文件当中的配置名称
config.getInitParamater("String name");//获取当前Servlet配置当中的指定名称的初始化参数的值
config.getInitParameter();//获取当前servlet所有配置参数组成的一个枚举
ServletContext getServletContext()//获取当前web应用的ServletContext对象
package com.hhuc;

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

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servletconfig extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		ServletConfig config = this.getServletConfig();// 获取config对象
		// --获取当前Servlet在web.xml中的配置名称
		String sname = config.getServletName();
		System.out.println(sname);
		// --获取当前Servlet配置中的初始化参数
		String value = config.getInitParameter("name2");
		System.out.println(value);
		// --获取当前Servlet配置中的初始化参数枚举
		Enumeration enumeration = config.getInitParameterNames();
		while (enumeration.hasMoreElements()) {
			String name = (String) enumeration.nextElement();
			String value2 = config.getInitParameter(name);
			System.out.println(value2);
		}
		// 获取一个ServletContext对象
		ServletContext context = config.getServletContext();
		Enumeration e = context.getInitParameterNames();
		while (e.hasMoreElements()) {
			String name = (String) e.nextElement();
			String value3 = context.getInitParameter(name);
			System.out.println(name + ":" + value3);
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}


 其实总的来说,ServletConfig对象并不是特别的重要。 
  


你可能感兴趣的:(复习笔记)