第三篇-->Servlet从细节开始(二)

8.ServletContext
1).能够由ServletConfig获取,    ServletContext  context=arg0.getServletContext();
2).该对象表明当前WEB应用:能够认为ServletContext是当前Web应用的一个大管家,能够获取当前WEB应用的各方面信息
    <!-- 配置当前WEB应用的初始化参数-->
    
    <context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>  
    </context-param>
    
     <context-param>
        <param-name>jdbcUrl</param-name>
        <param-value>jdbc:mysql:///lee</param-value>  
    </context-param>  
    <servlet>
        .......
    </servlet>
    <servlet>
        .......
    </servlet>
它是和servlet节点是并列的,是当前站点的全局信息。
它一样能够获取这些配置信息,不过它获取的是全局配置信息,而当前的ServletConfig是获取当前的Servlet的信息
  Enumeration <String> names=context.getInitParameterNames();
换句话说,任何一个Servlet均可以获取这个全局信息。
3)获取站点目录下的资源的绝对路径
方法一
  String path=context.getRealPath("/hello.jsp");    将得到hello.jsp在服务器上发布以后的真正路径。    /hello.jsp是其在这个项目中的根目录下的路径
  InputStream inputStream=context.getResourceAsStream("/WEN-INF/classes/test.txt");
  String path=context.getRealPath("/WEN-INF/classes/test.txt");  
路径只能写成/hello.jsp这种形式,\\不行
然而若是是src下的文件路径,假设src下有test.txt这样一个文件,若是想得到它的真正路径,写成 /WEB-INF/classes/test.txt,由于src下的文件都会被放到/WEN-INF/classes/test.txt的目录下,换言之,服务器加载完这个项目开始运行后,根本不存在src目录。
说明这个方法获得的都是服务器上的绝对路径,而不是部署前的路径
方法二
类加载器:      ClassLoader classLoader=this.getClass().getClassLoader();     InputStream inputStream=classLoader.getResourceAsStream("test.txt");
相关文章
相关标签/搜索