JavaWeb学习(5)

Posted by Csming on 2016-10-17

ServletConfig对象

  • init(ServletConfig xx)初始化函数中的参数
  • 封装了Servlet的配置信息,并且可以获取ServletContext对象
配置Servlet的初始化参数
	<servlet>
		<servlet-name>helloServlet</servlet-name>
		<servlet-class>com.csming.test.HelloServlet</servlet-class>
  		<!-- 配置Servlet的初始化参数,且节点必须在load-on-startup节点前 -->
		<init-param>
			<param-name>user</param-name>
			<param-value>root</param-value>
  		</init-param>
		<init-param>
			<param-name>password</param-name>
			<param-value>1230</param-value>
  		</init-param>
	  	<load-on-startup>1</load-on-startup>
	</servlet>

获取初始化参数

  • getInitParameter(String name)可以获取指定参数名的初始化参数
  • Enumeration getInitParameterName()可以获取参数名组成的Enumeration对象
  • eg:
    Enumeration name = arg0.getInitParameterNames();
    while(name.hasMoreElements()){
    String name1 = name.nextElement();
    String pa = arg0.getInitParameter(name1);
    System.out.println(name1 + “:” + pa);
    }
  • getServletContext()获取ServletContext对象
  • getServletName()//用得少

ServletContext对象

  • Context->上下文

ServletContext对象的获取

  • 利用ServletConfig对象的getServletContext()函数获取

ServletContext的含义

  • **该对象代表当前web应用,**可以认为ServletContext是当前web应用的一个大管家,可以从中获取到当前web应用的各方面信息

获取当前web应用的初始化参数

  • **配置当前web应用的初始化参数


    driver
    com.mysql.jdbc.Driver


    jdbcUrl
    jdbc:mysql"///atgulgu

  • 获取初始化参数的方法:
    getInitParameter(String name)
    getInitParameterName()

  • eg:
    ServletContext servletContext = arg0.getServletContext();
    String driver = servletContext.getInitParameter(“driver”);
    System.out.println(“driver” + driver);
    Enumeration names2 = servletContext.getInitParameterNames();
    while(names2.hasMoreElements()){
    String name2 = names2.nextElement();
    System.out.println("–>" + name2);
    }

  • 获取当前web应用程序的某一个文件在服务器上的绝对路径,而不是部署前的路径
    getRealPath(String /文件名)

  • 获取当前web应用的名称
    getContextPath()

  • 获取当前web应用的某一个文件对应的输入流
    getResourceAsStream(String path)

    try{
    			ClassLoader classLoader = getClass().getClassLoader();
    			InputStream is = classLoader.getResourceAsStream("jdbc.properties");
    			System.out.println("1. " + is);
    			InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
    			System.out.println("2. " + is2);
    }catch(Exception e){
    	e.printStackTrace();
    }
    
  • 和attribute相关的几个方法

  • getAttribute(String name)

  • getAttributeNames()

  • removeAttribute(String name)

  • setAttribute(String name,Object object)


  • 由于一个Web应用程序中的所有Servlet都共享同一个ServletContext对象,所以ServletContext对象被称为application对象(Web应用程序对象)
  • 功能:
  • 获取Web应用程序的初始化参数
  • 记录日志
  • application域范围的属性
  • 访问资源文件
  • 获取虚拟路径所映射的本地路径
  • Web应用程序之间的访问
  • ServletContext的其他方法

对比Context与Config:Config是局部的,Context是全局的