zoukankan      html  css  js  c++  java
  • [原创]java WEB学习笔记06:ServletContext接口

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

    内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

    本人互联网技术爱好者,互联网技术发烧友

    微博:伊直都在0221

    QQ:951226918

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    1.关于ServletContex

      1)Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig(关于servletConfig参考另外一篇博文)对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用

      2)由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为 application 对象(Web应用程序对象); 很重要

      3)可以实现的功能(获取当前应用的各个方面的信息)

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

        >记录日志 

        >application域范围的属性

          >访问资源文件

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

          >WEB应用程序之间的访问 

    2.配置ServletContext:在当前的WEB目录下的 web.xml配置,每配置一个参数,就必须重新创建一个<context-param> </context-param>节点,配置完成后,对于任何一个servlet都可以获取到ServletContex的初始化参数,二servlet的初始化参数,只有当前的servlet能获取

     1     <!-- 配置当前 WEB 应用的初始化参数 -->
     2     <context-param>
     3         <param-name>driver</param-name>
     4         <param-value>com.mysql.jdbc.Driver</param-value>
     5     </context-param>
     6     
     7     <context-param>
     8         <param-name>jdbcUrl</param-name>
     9         <param-value>jdbc:mysql:///test</param-value>
    10     </context-param>

    3.获取ServletContext的配置信息

      1)getInitParameter(String parameterName):获取初始化driver的参数值

       2)getInitParameterNames():获取所有的parameterName值

      3)getRealPath(String path):获取当前应用的某一个文件在服务器上的绝对路径,必须在WebContent文件夹下

      4)getContexPath():获取当前应用的名称 

      5)getResourceAsStream(String path) path的 / 为相对于 WEB 应用的根目录:获取当前WEB应用的某一个文件对应的输入流(很重要),在src下创建jdbc.properties

     1 @Override
     2     public void init(ServletConfig servletConfig) throws ServletException {
     3         System.out.println("init");
     4 
     5         // 1.获取ServletContext对象,当前的web应用的信息
     6         ServletContext servletContext = servletConfig.getServletContext();
     7 
     8         // 2.获取初始化driver的参数值
     9         String driver = servletContext.getInitParameter("driver");
    10         System.out.println("driver :" + driver);// output -> driver
    11                                                 // :com.mysql.jdbc.Driver
    12 
    13         // 3.获取所有的parameterName值,输出
    14         Enumeration<String> names = servletContext.getInitParameterNames();
    15         while (names.hasMoreElements()) {
    16             String name = names.nextElement();
    17             System.out.println(name);// output -> driver jdbcUrl
    18         }
    19 
    20         // 4.获取当前应用的某一个文件在服务器上的绝对路径,必须在WebContent文件夹下
    21         String realPath = servletContext.getRealPath("/hello.jsp");
    22         // output
    23         // -> E:java_workspaseeclipes.metadata.pluginsorg.eclipse.wst.server.core	mp1wtpwebappsjavaWEBhello.jsp
    24         System.out.println(realPath);
    25 
    26         // 5.获取当前应用的名称
    27         String contextPath = servletContext.getContextPath();
    28         System.out.println(contextPath); // output -> /javaWEB
    29 
    30         // 获取当前WEB应用的某一个文件对应的输入流
    31         // 方式一:
    32         try {
    33             ClassLoader classloader = getClass().getClassLoader();
    34             InputStream is = classloader.getResourceAsStream("jdbc.properties");
    35             System.out.println("1." + is);
    36         } catch (Exception e) {
    37             e.printStackTrace();
    38         }
    39 
    40         // 方式二:
    41         try {
    42             // 路径为想对于web项目在服务器中的绝对路径 ,其中/为 根 :即 开发中的 WebContent
    43             InputStream is2 = servletContext
    44                     .getResourceAsStream("/WEB-INF/classes/jdbc.properties");
    45             System.out.println("2." + is2);
    46         } catch (Exception e) {
    47 
    48             e.printStackTrace();
    49         }
    50 
    51     }

    4.总结

      1)充分理解 ServletContext对象:代表的是整个WEB应用

      2)理解各个方法

  • 相关阅读:
    vpp l3 bvi
    set interface ip address: failed to add 1 on loop1 which conflicts with
    Failed: no source address for egress interface
    vpp vrf
    vpp bvi
    creates 2 connected namespaces vpp1 & vpp2
    unknown input `arp'
    vpp cmd
    vxlan bum
    Go流程结构(if)
  • 原文地址:https://www.cnblogs.com/jasonHome/p/5493169.html
Copyright © 2011-2022 走看看