Servlet访问Web资源的几种方式

项目结构如下:
在这里插入图片描述

src目录下有个config.properties文件,src目录下的文件最终会被打包进WEB-INF/classes/目录下。在web目录下有个config目录,该目录下也有个config.properties文件。这些文件与目录最终在tomcat中的结构如下:

webapps
	Servlet
		config
			config.properties
		WEB-INF
			classes
				x.y.servlet
				config.properties			
			web.xml
		index.jsp

方式一

InputStream is=new FileInputStream("src/config.properties");

通过该种方式访问不到,因为这里的路径是相对路径,FileInputStream的相对路径是根据jre来确定的,因为这里是web项目,jre最后会交给tomcat来管理,所以这里相对的路径是tomcatbin目录。如果想访问到,需要在bin目录下新建src目录,并把config.properties拷入。

方式二

ServletContext context=getServletContext();
InputStream is=new FileInputStream(context.getRealPath("config/config.properties"));

getRealPath方法获取的是绝对路径,context.getRealPath("")获取的路径是tomcat安装目录/webapps/Servlet/context.getRealPath("config/config.properties")获取的路径是tomcat安装目录/webapps/Servlet/config/properties。通过这种方式可以访问到。

方式三

ServletContext context=getServletContext();
InputStream is=context.getResourceAsStream("config/config.properties");

ServletContextgetResourceAsStream方法相对的目录是tomcat安装目录/webapps/Servet/,通过这种方式可以访问到。

方式四

InputStream is=this.getClass().getClassLoader().getResourceAsStream("../../config/config.properties");

通过getClassLoader方法获得类加载器,再调用类加载器的getResourceAsStream方法。类加载器的getResourceAsStream方法相对的目录是tomcat安装目录/webapps/Servet/WEB-INF/classes/目录。所以需要使用../../回到上上层目录才能访问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X+Y=Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值