javaWeb_Servlet_servlet基础_ServletContext
Servlet基础_ServletContext接口
1.概述
  Servlet引擎为每一个WEB应用程序都创建了一个对应的ServletContext对象,ServletContext
  对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext()方法可以放回
  ServletContext对象的引用。
  由于一个WEB应用程序中的所有的Servlet都是共享一个ServletContext对象,所以,ServletContext
  对象被称之为application对象(也被称为Web应用程序对象)。
2.ServletContext的功能
  (1).获取WEB应用程序中的初始化参数
  
  (2).日志记录
  
  (3).application域范围的属性
  
  (4).访问资源文件
  
  (5).获取虚拟路劲所映射的本地路劲
  
  (6).WEB应用程序之间的访问
  
  (7).ServletContext的其他方法
3.配置WEB应用程序的初始化参数
  
  (1).初始化配置信息(全局初始化参数,所有的Servlet都可以使用,区别于servlet初始化参数,里面的只能那一个Servlet使用)
  
  <!--配置当前的WEB应用的初始化参数-->
  <context-param>
    <param-name>driver</param-name>
    <param-value>com.jdbc.mysql.Driver</param-value>
  </context-param>
  
  <context-param>
    <param-name>jdbcUrl</param-name>
    <param-value>jdbc:mysql:///test</param-value>
  </context-param>
  
  <servlet>
		<servlet-name>Manager</servlet-name>
		<servlet-class>com.action.Manager</servlet-class>
  </servlet>
  
  (2).获取初始化参数(init()方法中)
  
    //获取ServletContext上下文对象
     ServletContext servletContext = servletConfig.getServletContext();
		
	//获取方式1
	String driver = servletContext.getInitParameter("driver");
	System.out.println("driver is:"+driver);
		
	//获取方式2
	Enumeration<String> name2 =  servletConfig.getInitParameterNames();
	while(name2.hasMoreElements()){
		String name = name2.nextElement();
		String value = servletConfig.getInitParameter(name);
		System.out.println("获取的上下文参数是:" + name +"---"+value);
	}
4.获取当前某一个文件在服务器上的绝对路劲
  
  (1).方法 
      getRealPath(String path);用于获取当前web应用下面(WebRoot下)的文件的绝对路劲。
  (2).测试代码:
      //获取文件绝对路劲
	  String getFilePath = servletContext.getRealPath("/note.txt");
	  System.out.println("文件的路劲是:"+getFilePath);
      
	  //结果:D:\Myeclipse2014Workspace\ServletTest\WebRoot\note.txt
5.获取当前应用的名称
  
  (1).方法 
      getContextPath();
  
  (2).测试代码
    //获取当前应用的名称
	String getContext = servletContext.getContextPath();
	System.out.println("获取的当前的应用的名称是:"+getContext);
  
6.获取当前WEB应用程序的某一个文件对应的输入流
  
  (1).方法 
      getResourceAsStream(String path);path中的"/"为当前web目录的根目录
  
  (2).测试代码
     
	 A:创建文件test.properties(位于包位置)
	 
	 B:获取代码测试
	 //获取当前web目录下面的文件的输入流
		//方法1:
		try {
			ClassLoader classLoader = getClass().getClassLoader();
			InputStream in = classLoader.getResourceAsStream("test.properties");
			System.out.println("方式1:"+in);
		} catch (Exception e) {
            e.printStackTrace();
		}
		
		//方法2
		try {
			InputStream is = servletContext.getResourceAsStream("/WEB-INFO/classes/test.properties");
			System.out.println("方式2:"+is);
		} catch (Exception e) {
			e.printStackTrace();
		}
7.和Attribute相关的几个方法(后加)
  
                    
                
                
            
        
浙公网安备 33010602011771号