美文网首页
ServletConfig & ServletContext

ServletConfig & ServletContext

作者: lucus_guo | 来源:发表于2017-02-15 09:36 被阅读0次

ServletConfig对象

ServletConfig:封装了Servlet配置信息,并且可以获取ServletContext对象。

  • 配置Servlet的初始化参数:
        <!-- 配置Servlet初始化参数 ,且节点必须在load-on-startup前面-->
        <init-param>
            <param-name>user</param-name>
            <param-value>root</param-value>
        </init-param>
  • 获取初始化参数:
    1) 获取Servlet的配置名称(了解):getServletName()
    2) getInitParameter(String name):获取指定参数名的初始化参数
    3) getInitParameterNames():获取参数名组成的Enumeration对象:
        Enumeration<String> names = servletConfig.getInitParameterNames();
        while(names.hasMoreElements()){
            String name = names.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println("^^"+ name+ ":" + value);

ServletContext对象

Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext被包含在ServletConfig对象中,调用ServletConfig.getServletConfig方法可以返回ServletContext对象的引用。由于一个WEB应用程序中所有Servlet都共享一个ServletContext对象,所以ServletContext对象被称之为application对象(Web应用程序对象)。
1) 可以由ServletConfig获取
ServletContext servletContext = servletConfig.getServletContext();
2) 该对象代表当前WEB应用:可以认为ServletContext是当前WEB应用的大管家,可以获取当前WEB应用的各个方面的信息。

  • 配置当前WEB应用的初始化参数(web.xml)
    <context-param>
        <param-name>driver</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
  • 获取当前WEB应用的初始化参数方法:
   ServletContext servletContext = servletConfig.getServletContext();
        String driver = servletContext.getInitParameter("driver");
        System.out.println("driver: " + driver);
        
        Enumeration<String> names2 = servletContext.getInitParameterNames();
        while(names2.hasMoreElements()){
            String name = names2.nextElement();
            String value = servletContext.getInitParameter(name);
            System.out.println("-->" + name + ":" + value);
        }
  • 获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径
    getRealPath(String path)
    String realPath = servletContext.getRealPath("/hello.jsp");
  • 获取当前WEB应用的名称
    getContextPath()
    String contextPath = servletContext.getContextPath();
  • 获取当前WEB应用的某一个文件对应的输入流
    getResourceAsStream(String path): path 的 / 为相对于当前WEB应用的根目录
    InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");

相关文章

网友评论

      本文标题:ServletConfig & ServletContext

      本文链接:https://www.haomeiwen.com/subject/gllfwttx.html