J2EE之ServletContext读取资源文件

J2EE之ServletContext读取资源文件

大家好,又见面了,我是全栈君。

ServletContext读取资源文件内容的方式有两种:

方法1.

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/data.properties");
	Properties pros = new Properties();
	pros.load(in);
		
	String username = pros.getProperty("username");
	String password = pros.getProperty("password");
		
	System.out.println("username = " + username);
	System.out.println("password = " + password);
}


J2EE之ServletContext读取资源文件

这里须要注意的是data.properties文件的位置在Myeclipse的src文件夹下,为啥getResourceAsStream方法传入的參数确实”/WEB-INF/classes/data.properties”

这是由于这些代码有webserver运行,当项目公布以后。data.properties文件就会被放到tomcat安装文件所在目录下。

如图:

J2EE之ServletContext读取资源文件J2EE之ServletContext读取资源文件J2EE之ServletContext读取资源文件

所以这里传入參数就解释清楚了。

方法2

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	String path = this.getServletContext().getRealPath("/WEB-INF/classes/data.properties");
	FileInputStream in = new FileInputStream(path);
	Properties pros = new Properties();
	pros.load(in);
		
		
	String username = pros.getProperty("username");
	String password = pros.getProperty("password");
		
	System.out.println("username = " + username);
	System.out.println("password = " + password);
}

这里首先通过getRealPath方法获取data.properties文件的绝对路径,然后通过FileInputStream获取文件流。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115509.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MYSQL 修改密码的几种方式「建议收藏」

    MYSQL 修改密码的几种方式「建议收藏」MYSQL修改密码的几种方式1、最简单的方法就是借助第三方工具NavicatforMySQL来修改2、用SETPASSWORD命令先登录MySQL输入命令mysql-uroot-

    2022年6月30日
    18
  • 用websocket实现实时聊天功能

    用websocket实现实时聊天功能最近想实现网页版的仿QQ聊天工具,本来想用ajax实现的,但是一想到要一直轮询,就感觉有点蠢。后来在网上找到了websocket相关的资料,就拿来跟大家分享下(不是很熟练,现在只实现了群聊,单聊的前端不会写了。但可以跟大家说说思路)。服务器端代码:首先要创建类WebSocketConfig实现ServerApplicationConfig接口,ServerApplicationConfig项目…

    2022年10月21日
    4
  • 细说java_java barrier

    细说java_java barrier今天来说说cloneable,java中创建对象除了使用new关键字,反射,还有一种方式就是clone。有一个设计模式叫原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,简单的说就是clone一个对象实例,使得clone出来的对象和原有的对象一模一样,两个对象相互不影响。什么时候使用clone呢,clone又存在哪些问题?  1.clone的使用场景…

    2022年10月14日
    3
  • tensorflow2.2_实现Resnet34_花的识别[通俗易懂]

    tensorflow2.2_实现Resnet34_花的识别[通俗易懂]残差块    Resnet是由许多残差块组成的,而残差块可以解决网络越深,效果越差的问题。    残差块的结构如下图所示。其中:weightlayer表示卷积层,用于特征提取。F(x)F(x)F(x)表示经过两层卷积得到的结果。xxx表示恒等映射。F(x)+xF(x)+xF(x)+x表示经过两层卷积后与之前的卷积层进行结合。所以F(x)F(x)F(x)和xxx代表的是相同的信号。作用:将浅层网络的信号递给深层网络,使网络得到更好的结果。批量归一化(BatchNormaliz

    2022年9月28日
    2
  • dumpbin options「建议收藏」

    dumpbin options「建议收藏」dumpbin.exexx.exe /options >x:\\xx.txtoptions:  /ALL  /ARCHIVEMEMBERS  /CLRHEADER  /DEPENDENTS  /DIRECTIVES  /DISASM[:{BYTES|NOBYTES}]  /ERRORREPORT:{NONE|PROMPT|QUE

    2022年6月19日
    26
  • JavaScript数组方法和es6数组方法

    JavaScript数组方法和es6数组方法js数组常用方法:exportclassTemplateFormsComponentimplementsOnInit{constructor(){}ngOnInit(){this.testArray()}testArr=[‘1′,’2′,’3’]testArray(){//toString()把数组转换为字符串console.log(this.testArr.toString())//1//join()方法可将所有

    2022年6月9日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号