Servlet学习之ServletConfig

Servlet学习之ServletConfig

  • ServletConfig在Servlet中扮演的角色
  • 配置初始化参数
  • ServletConfig对象的获取
  • ServletConfigAPI的介绍
  • ServletConfig的代码测试
  • ServletConfig补充

ServletConfig在Servlet中扮演的角色

  • 用于加载Servlet的初始化参数,在一个web应用可以存在多个ServletConfig对象,一个Servlet对应一个ServletConfig对象。

  • 初始化参数的作用: 我们可以将一些servlet运行时需要加载常量定义在初始化参数中,当我们需要使用时,可以直接通过ServletConfig获取到这些值。

配置初始化参数

Servlet学习之ServletConfig_第1张图片

ServletConfig对象的获取

1、通过重写父类有参的init(ServletConfig config)方法获得,查看源码可以知道有参的init(ServletConfig config)的参数类型就是ServletConfig类型的。

//1、创建私有变量
	private ServletConfig config = null;
//2、重写init方法,从而获取ServletConfig对象
	this.config = config

2、通过继承父类(GenericServlet)的方法得到一个ServletConfig对象

//	得到ServletConfig对象
	ServletConfig config = this.getServletConfig();

ServletConfigAPI的介绍

1、String getServletName():获得是我们在web.xml中配置的中的内容,也就是返回是Servlet实例的名字。

2、String getInitParameter(String name):获取在servlet中初始化参数的值。这里注意与全局初始化参数的区分。这个获取的只是在该servlet下的初始化参数

3、Enumeration getInitParameterNames(): 获取当前Servlet所有初始化参数的名字组成的枚举,返回值类型是:Enumeration

4、ServletContext getServletContext():获取代表当前web应用的ServletContext对象(后期会进行介绍 )

ServletConfig的代码测试

创建一个MyConfig的Servlet类,然后在web.xml中的标签下,通过标签为这个servlet配置两个初始化参数:


    MyConfig
    com.syj.ServletConfig.MyConfig
    
    	username
    	tom
    
     
    	password
    	root
    
    
    	encoding
    	UTF-8
    
  

  
    MyConfig
    /myConfig
  

利用提供的API获取参数名和参数值:

public class MyConfig extends HttpServlet {

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

		ServletConfig config = this.getServletConfig();

		// 1、获取ServletConfig对象
		// 获取当前Servlet在web.xml配置的名称。
		// 使用的方法是:getServletName()
		String servletName = config.getServletName();
		System.out.println(servletName);

		// 根据的名字获取指定的的值
		// 使用的方法是:getInitParamter(String name)
		String pusername = config.getInitParameter("username");
		String pencoding = config.getInitParameter("encoding");
		System.out.println("getInitParameter得到encoding:"+pusername);
		System.out.println("getInitParameter得到encoding:"+pencoding);

		// 根据获取所有的的值返回值类型:Enumeration
		// 使用的方法是:getInitParamterNames()	
		Enumeration initParameterNames = config.getInitParameterNames();
		// 遍历得到的参数名
		while (initParameterNames.hasMoreElements()) {
			String name = initParameterNames.nextElement();
			String value = config.getInitParameter(name);
			System.out.println("getInitParameterNames方法得到:"+name + ":" + value);
		}
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

ServletConfig补充

  • 每一个servlet都有自己的ServletConfig对象,也就是说它是单例的。
  • ServletConfig对象是由服务器创建的,通过Servlet中init方法传递到Servlet中。
  • ServletConfig对象表示Servlet的配置对象,我们可以通过它获取Servlet的名称与相关的初始化参数。
  • 我们可以通过ServletConfig获取 ServletContext对象。
    ServletContext config = this.getServletContext ();

你可能感兴趣的:(JavaWeb,Servlet)