zoukankan      html  css  js  c++  java
  • 三种加载方式

    重点总结:
        即:三种加载方式
        1》传统加载方式------默认路径:tomcat/bin/目录
        2》使用ServletContext对象-----默认路径:web应用(工程)目录
        3》使用类加载器------默认路径:WEB-INF/classes/目录

    一、利用ServletContext对象读取资源文件--默认目录为:工程(应用)路径
                    重点方法:
                            InputStream getResourceAsStream("文件路径");
                    code:
                        ServletContext context = this.getServletContext();
                        InputStream is = context.getResourceAsStream("/doc/config.properties");// /代表的当前应用(工程)
                        Properties props = new Properties();
                        props.load(is);
                        System.out.println(props.getProperty("email"));
                        
                    注意:
                            1》用传统方式读取文件的时候,是以相对于tomcatin的目录下访问的
                            2》如果以ServletContext方式读取资源文件(text/xml/properties),是相对于web服务器的当前web应用(工程)目录而言的
                                    此时/:表示当前web应用(工程),即:day06
      二、通过类加载器加载文件:默认目录为WEB-INF/classes/
                    注意:
                        1》类加载器只能加载IDE工具下src目录下的资源文件,其它目录无法加载。            
                        2》默认的路径为WEB-INF/classes/目录,即:此时/表示:/WEB-INF/classess/目录
                    重点方法:
                        1》获得类加载器(    Class对象的方法)
                            ClassLoader getClassLoader();
                        2》获取资源输入流
                            ClassLoader getResourceAsStream(String name);
                    步骤:
                        1》取得当前对象的字节码对象
                            Class clazz = this.getClass();
                        2》取得当前对象的类加载器
                            ClassLoader cl = clazz.getClassLoader();
                        3》通过类加载器加载资源
                            InputStream is = cl.getResourceAsStream("资源路径");
                    code:
                            //1,获取当前对象的字节码对象
                            Class clazz = this.getClass();
                            //2,返回当前对象的类加载器
                            ClassLoader cl = clazz.getClassLoader();
                            //3,根据类加载器获取输入流
                            InputStream is = cl.getResourceAsStream("/cn/itcast/web/Servlet/config.properties");

     ##【注意】两种加载方式的区别?
            1)ServletContext方式
                    1》加载的资源文件的位置任意
                    2》加载文件时,只会以流的方式读取,不会一次性的将文件全部加载。 适合大文件
                    3》默认目录为,当前web应用的目录。
            2)类加载器的方式
                    1》加载的资源文件的位置只能放在类路径下,即IDE工具的src目录下
                    2》加载文件时,会一次性加载全部文件。  适合小文件。
                    3》默认目录为/WEB-INF/classes/目录。
            
        补充:有关/的问题?
            服务端:
                物理硬盘路径使用[window系统]
                网络路径使用/
            客户端:
                如果/代表客户端路径的话,表示tomcat/webapps/目录
            详见"/代表的路径种类"图。

  • 相关阅读:
    面试总结
    CentOS 6.4 yum安装LAMP环境
    windows下XAMPP安装php_memcache扩展
    linux学习笔记
    本地虚拟机LNMP环境安装
    Linux下php安装memcache扩展
    linux下memcached安装以及启动
    阿里云服务器---centos编译安装ffmpeg
    [Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/SkyGood/p/3970412.html
Copyright © 2011-2022 走看看