用servletcontext读取properties文件-------1)

重点在于:InputStream in=this.getServletContext().getResourceAsStream("/WEB-INF/classes/kms.properties");//获取properties内容。      这个地址是编译后的地址src文件夹就会消失,变成在WEB-INF文件夹中的classes里!

properties位置的几种可能:

/WEB-INF/classes/kms.properties--------       》

/WEB-INF/classes/cn/itcaste/kms.properties------>

/kms.properties------------------------------------------>

用servletcontext读取properties文件-------2)

传统的io流属于相对路径,是相对于java虚拟机,目前也就是tomcat里的bin文件夹,所以在用之前要取绝对路径(这个方法的好处在于可以取到资源名字)

在dao层读取properties文件

如果读取配置文件不是servlet的话,就只能通过类装载器去读取了(不能传递serletcontext,因为降低层和层的耦合度)

demo:ServletDemo12

package cn.itcaste.web.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import cn.itcaste.web.dao.UserDao; /**
* Servlet implementation class ServletDemo12
*/
@WebServlet("/ServletDemo12")
public class ServletDemo12 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserDao userdao=new UserDao();
userdao.updata();
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }

UserDao.java

/**
*
*/
package cn.itcaste.web.dao; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; /**
* @author: snowing
* @date : 2017年3月28日
*
*/
//如果读取配置文件不是servlet的话,就只能通过类装载器去读取了(不能传递serletcontext,因为降低层和层的耦合度)
public class UserDao {
public void updata() throws IOException{ InputStream in=UserDao.class.getClassLoader().getResourceAsStream("kms.properties");
Properties props=new Properties();
props.load(in);
System.out.println(props.getProperty("url"));
} }

kms.properties

结果输出:访问:http://localhost:8082/day04/ServletDemo12

控制台:jdbc:myaql://locahost:3306/test

因为dao层多个方法都需要读取properties,所以可以用静态代码块(注意配置文件不要太大!)

读取properties文件细节:如果配置文件properties修改了,要得到实时的数据就不能用类装载器来读取了,

因为类只加载一次!!!!

所以用普通的io流来读取,当然一定要得到绝对路径         代码如下:

读取properties文件------servletcontext及dao层读取的更多相关文章

  1. java 读取properties文件总结

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  2. java基础学习总结——java读取properties文件总结

    摘录自:http://www.cnblogs.com/xdp-gacl/p/3640211.html 一.java读取properties文件总结 在java项目中,操作properties文件是经常 ...

  3. java基础—java读取properties文件

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  4. Java基础学习总结(15)——java读取properties文件总结

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  5. java读取properties文件总结

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  6. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  7. Java的Properties类和读取.properties文件

    一..properties文件的作用 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必 ...

  8. Java读取Properties文件的六种方法

    使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedIn ...

  9. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.     下面直接贴出代码:java类 public class Mytest pub ...

随机推荐

  1. atitit.集合的filt操作细分 filter总结

    atitit.集合的filt操作细分 filter总结 1. Css sltr 1 2. 基本选择器(根据id,class,元素名) 2 3. 层次选择器 3 4. 过滤选择器 3 5. First, ...

  2. Java Mail(二):JavaMail介绍及发送一封简单邮件

    http://blog.csdn.net/ghsau/article/details/17839983 ************************************************ ...

  3. NSString (NSStringPathExtensions)

    转自:http://linwwwei.iteye.com/blog/1407520 + (NSString *)pathWithComponents(NSArray *)components 根据co ...

  4. selenuim爬虫实战 (下)

    SuperLOFTERDownloader7.java package test; import java.io.IOException; import java.util.ArrayList; im ...

  5. 三分 - HNU 13409 Flowers

    Flowers Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13409&cour ...

  6. C++标准库之mutex

    互斥锁有可重入.不可重入之分.C++标准库中用mutex表示不可重入的互斥锁,用recursive_mutex表示可重入的互斥锁.为这两个类增加根据时间来阻塞线程的能力,就又有了两个新的互斥锁:tim ...

  7. 在MVC设计模式中,JavaBean的作用是。(选择1项)

    A.Controller B.Model C.业务数据的封装 D.View 解答:B

  8. 【BZOJ】1645: [Usaco2007 Open]City Horizon 城市地平线(线段树+特殊的技巧)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1645 这题的方法很奇妙啊...一开始我打了一个“离散”后的线段树.............果然爆了. ...

  9. PWA(Progressive Web App)入门系列:(一)PWA简单介绍

    前言 PWA做为一门Google推出的WEB端的新技术,长处不言而喻.但眼下对于相关方面的知识不是非常丰富.这里我推出一下这方面的新手教程系列.提供PWA方面学习. 什么是PWA PWA全称Progr ...

  10. RabbitMQ之Exchange-4

    RabbitMQ消息模型的核心思想是生产者不会将消息直接发送给队列.生产者通常不知道消息将会被哪些消费者接收,按照刚开始里介绍的rabbitMQ中所画的,生产者不是直接将消息发送给Queue么认识会交 ...