Servlet-ServletConfig对象

Servlet-ServletConfig对象

ServletConfig接口的方法

* getInitParameterNames

* getInitParameter

* getServletName

* getServletContext

作用:

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

1)配置Servlet的初始化参数

<servlet>
      <!--servlet注册的名字-->
    <servlet-name>HelloServlet</servlet-name>
      <!--servlet的全类名-->
    <servlet-class>com.demo.javaweb.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>
      <!--可以指定Servlet被创建的时机-->
      <load-on-startup>1</load-on-startup>
  </servlet>

  

2)获取初始化参数:

>getInitParameter(String name):获取指定参数名的初始化参数

>getInitParameterNames():获取参数名组成的Enumeration对象

 @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init...");
        String user = servletConfig.getInitParameter("user");
        System.out.println(user);

        Enumeration<String> names = servletConfig.getInitParameterNames();
        while (names.hasMoreElements()){
            String name = names.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println(name + " " + value);
        }
    }

  

3)获取servlet的配置名称

 String servletName = servletConfig.getServletName();
        System.out.println(servletName);

ServletContext接口:

* Servlet引擎为每个WEB应用程序都创建了一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。

* 由于一个WEB应用程序中所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为application对象(web应用程序对象)。

* 功能:

-获取WEB应用程序的初始化参数

-记录日志

-application域范围的属性

-访问资源文件

-获取虚拟路径所映射的本地路径

-WEB应用程序之间的访问

-ServletContext的其他方法

  <!--配置当前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://</param-value>
    </context-param>

1.获取web应用的初始化参数

方法:

 getInitParameter

 getInitParameterNames

        ServletContext servletContext = servletConfig.getServletContext();
        String driver = servletContext.getInitParameter("driver");
        System.out.println(driver);

        Enumeration<String> names2 = servletContext.getInitParameterNames();
        while (names2.hasMoreElements()){
            String name = names2.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println(name + " " + value);
        }

  

web应用的初始化参数:可以被所有servlet所获取

servlet初始化参数:只能用于这个Servlet所获取

 2.获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的路径

getRealPath(String path)

        String realPath = servletContext.getRealPath("/hello.jsp");
        System.out.println(realPath);

  

3.获取当前WEB应用的名称:

getContextPath()

 4.获取当前WEB应用的某一个文件对应的输入流

 getResourceAsStream(String path):path的/为当前WEB应用的根目录

      ClassLoader classLoader = getClass().getClassLoader();
        InputStream is = classLoader.getResourceAsStream("jdbc.properties");
        System.out.println(is);
        InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
        System.out.println(inputStream);

  

5.与Attribute相关的方法

原文地址:https://www.cnblogs.com/yangHS/p/10921596.html