栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在servlet中访问本地文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在servlet中访问本地文件

这是你的选择。基本上有三种方式:

将其放在类路径中,以便可以

ClassLoader#getResourceAsStream()
使用相对于类路径的路径来加载它:

Properties properties = new Properties();properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));

这里

filename.properties
应该被放置在其通过web应用程序的默认类路径,例如所覆盖的根源之一
Webapp/WEB-INF/lib
Webapp/WEB-INF/classes
Appserver/lib
JRE/lib
。如果propertiesfile是特定于webapp的,则最好将其放在中
WEB-INF/classes
。如果要在IDE中开发项目,则也可以将其放在src文件夹(项目的源文件夹)中。

您也可以将其放置在默认类路径之外的某个位置,并将其路径添加到应用服务器的类路径。例如,在Tomcat中,您可以将其配置为的shared.loader属性

Tomcat/conf/catalina.properties

2.)将其放在Web文件夹(项目的Web内容文件夹)中的某个位置,以便您可以

ServletContext#getResourceAsStream()
使用相对于webcontent的路径加载它:

Properties properties = new Properties();properties.load(getServletContext().getResourceAsStream("/WEB-INF/filename.properties"));

请注意,我已演示将文件放置在文件

/WEB-INF
夹中,否则任何Web浏览器都可以公开访问该文件。还要注意,
ServletContext
在任何
HttpServlet
类中,都只能由Inherited访问
GenericServlet#getServletContext()

3.)将其放在本地磁盘文件系统中的某个位置,以便您可以

java.io
使用绝对本地磁盘文件系统路径以常规方式加载它:

Properties properties = new Properties();properties.load(new FileInputStream("/absolute/path/to/filename.properties");

这里有很多不同的方法,但这取决于您的需求:

要加载一个属性文件从

$TOMCAT_HOME/confdirectory
您需要使用访问它
java.io.File
的对象,因为类加载器(如
this.getClass().getClassLoader().getResourceAsStream(...)
仅仅是能够从你的类路径加载文件(类)(下
WEB-INF/classes
WEB-INF/lib
$TOMCAT_HOME/lib
)。

从中加载文件的最简单示例

Tomcat's config directory
是:

File configDir = new File(System.getProperty("catalina.base"), "conf");File configFile = new File(configDir, "myconfig.properties");InputStream stream = new FileInputStream(configFile);Properties props = new Properties();props.load(stream);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号