zoukankan      html  css  js  c++  java
  • ServletConfig与ServletContext

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

    ServletConfig接口的方法:

                         getInitParameterNames
                         getInitParameter
                         getServletName
                         getServletContext

    1. 配置 Serlvet 的初始化参数

    <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class>
    
    <!-- 配置 Serlvet 的初始化参数。 且节点必须在 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>

    2.获取初始化参数:

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

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

                > getServletName: 获取 Serlvet 的配置名称(了解)  

        
       //获取初始化参数
        @Override
        public void init(ServletConfig servletConfig) throws ServletException {
            System.out.println("init");
            //getInitParameter(String name): 获取指定参数名的初始化参数
            String user = servletConfig.getInitParameter("user");
            System.out.println("user:" + user);//root
            
            //getInitParameterNames(): 获取参数名组成的 Enumeration 对象. 
            Enumeration<String> names = servletConfig.getInitParameterNames();
            while (names.hasMoreElements()) {
                String name = names.nextElement();
                String value = servletConfig.getInitParameter(name);//获取value值
                System.out.println("**"+name + value);
                //**password123456
                //**userroot
            }
        }

           

    3.ServletContext接口 

             1). Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,

                 调用   ServletConfig.getServletContext方法可以返回ServletContext对象的引用。
             2). 由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,

                  所以,ServletContext对象被称之为 application 对象(Web应用程序对象)。

             3).功能:

                  ①获取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:///test</param-value>
        </context-param>

                          获取参数

            // servletContext对象
            ServletContext servletContext = servletConfig.getServletContext();
    
            String driver = servletContext.getInitParameter("driver");
            System.out.println("driver:"+driver);
            Enumeration<String> names2 = servletContext.getInitParameterNames();
            while (names2.hasMoreElements()) {
                String name2 =  names2.nextElement();
                String value2 = servletContext.getInitParameter(name2);
                System.out.println("$$"+name2+value2);
                //driver:com.mysql.jdbc.Driver
                //$$drivercom.mysql.jdbc.Driver
                //$$jdbcUrljdbc:mysql:///test
            }

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

                        getRealPath(String path);           

                         String realPath = servletContext.getRealPath("/note.txt");
                         System.out.println(realPath);

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

                          getContextPath()

                          String contextPath = servletContext.getContextPath();
                          System.out.println(contextPath);

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

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

                          InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");

                          Sytem.out.println(is2)

                    ⑤. 和 attribute 相关的几个方法:

            

    理解:1.可以由 SerlvetConfig 获取:

                                 ServletContext servletContext = servletConfig.getServletContext();

              2. 该对象代表当前 WEB 应用: 可以认为 SerlvetContext 是当前 WEB 应用的一个大管家.

                  可以从中获取到当前 WEB 应用的各个方面的信息.

          

    All that work will definitely pay off
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/afangfang/p/12713590.html
Copyright © 2011-2022 走看看