三种加载方式

重点总结:
    即:三种加载方式
    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》用传统方式读取文件的时候,是以相对于tomcat\bin的目录下访问的
                        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/目录
        详见"/代表的路径种类"图。

 

转载于:https://www.cnblogs.com/SkyGood/p/3970412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值