`

读取properties资源特性文件的值(键值对)、路径

    博客分类:
  • Java
 
阅读更多
读取资源文件中的类为:
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class PropetiesInfo {

	public final static String CONFIG	= "remoting.properties";
	
	public static Object getKeyInfo(String filePath,String keyName){
		InputStream proIn = PropetiesInfo.class.getClassLoader().getResourceAsStream(filePath);
		Properties pro = new Properties();
		try {
			pro.load(proIn);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//back = pro.getProperty(keyName);
		return pro.get(keyName);
	}
	
	/*
	public static void main(String args[]){
		System.out.println("version===="+String.valueOf(PropetiesInfo.getKeyInfo("remoting.properties", "version")));
	}
	*/
}

在项目的src目录下新建一个资源文件remoting.properties,如下:
ftp_host = 10.6.8.32 
ftp_port = 56
ftp_userName = hello
ftp_password =jhjdhdjkh

则现在可以通过下面的方式直接读取给定键的值:
PropetiesInfo.getKeyInfo(PropetiesInfo.CONFIG, "ftp_host")
PropetiesInfo.getKeyInfo(PropetiesInfo.CONFIG, "ftp_port")


Spring配置文件中利用PropertyPlaceholderConfigurer获取properties文件中值:http://tangwenchao86.iteye.com/blog/1199044


ClassPathXmlApplicationContext是spring读取xml中bean最常用的类
简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用:
ClassPathXmlApplicationContext cpx=new ClassPathXmlApplicationContext ("包名(或者是保的完整路径)/配置文件名字(也就是xml文件)");
cpx.getBean("配置文件中定义的bean实例");

例如:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO");

如果是两个以上的xml文件:
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","dao.xml"});

或者用通配符:
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");

或者:
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/conf/spring/*/*.xml","classpath:/conf/spring/*/*/*.xml");
XxxService service = (XxxService)context.getBean(XxxService.class);

ClassPathXmlApplicationContext注意事项:
1.classpath:前缀是不需要的,默认就是指项目的classpath路径下面;
2.如果要使用绝对路径,需要加上file:前缀表示这是绝对路径;


路径:
用File.separator获取系统的文件分隔符:windows系统的文件分隔符为\;linux系统为/

javax.servlet.ServletContext接口提供了获取应用的绝对路径的方法getRealPath、以及获取当前应用上下文的方法getContextPath。
可以通过以下方式获取ServletContext:
config.getServletContext()  //ServletConfig config

request.getSession().getServletContext()

所以,获取应用的绝对路径:
config.getServletContext().getRealPath("")
config.getServletContext().getRealPath("/")

request.getSession().getServletContext().getRealPath("")
request.getSession().getServletContext().getRealPath("/")

config.getServletContext().getRealPath(filename) //filename这个文件是放在WebRoot目录下的

windows系统环境下:
request.getSession().getServletContext().getRealPath("") 为D:\tomcat-6.0.37\webapps\Test
request.getSession().getServletContext().getRealPath("/")为D:\tomcat-6.0.37\webapps\Test\

linux系统环境下:
request.getSession().getServletContext().getRealPath("")为 /root/aaa/installedApps/Test_war.ear/Test.war/
request.getSession().getServletContext().getRealPath("/")为/root/aaa/installedApps/Test_war.ear/Test.war

获取应用的上下文:
config.getServletContext().getContextPath()为/Test 
request.getContextPath()     输出:/Test
在jsp页面中${pageContext.request.contextPath}为/Test
这个/ 指部署目录: tomcat\webapps\
在html、js等访问资源文件时,src="/resources...", 这个/ 也是指部署目录: tomcat\webapps\
如果这样设置src,说明应用系统跟资源文件分离的。两者部署在同一个tomcat下。

在windows下,路径中多若干个/或\,也可以正常运行
例如,D:\tomcat-6.0.37\webapps\resources//download/template/xxx.xls
甚至,D:\tomcat-6.0.37\webapps\resources////////download/template/xxx.xls
甚至,D:\tomcat-6.0.37\webapps\resources/\\\\\download/template/xxx.xls
甚至,D:\tomcat-6.0.37\webapps\resources/\\\\\///////download/template/xxx.xls
甚至,D:\tomcat-6.0.37\webapps\resources/\//////\//\///\\////\//\download/template/xxx.xls
甚至,D:\tomcat-6.0.37\webapps\resources/\//////\//\///\\////\//\download\//////\//\///\\////\//\template\//////\//\///\\////\//\xxx.xls
都是可以正常运行的。
------------------------------------------
File file= new File("bsPDF"); 
if(!file.exists()){
   file.mkdirs();
}
String path = file.getAbsolutePath(); //绝对路径
如果在web项目中,部署tomcat后运行上段代码,将在tomact的bin目录下创建一个文件夹bsPDF,此时path=D:\tomcat\bin\bsPDF
如果用Run As-->Java Application直接运行代码,则在项目的工作空间生成一个文件夹bsPDF,此时path=E:\programe\Test\bsPDF

req.getRequestURI()= /Test/aaa/xxx.html   或   /Test/aaa/xxx.do
req.getRequestURL()= http://10.3.1.116:8080/Test/aaa/xxx.html 或 http://10.3.1.116:8080/Test/aaa/xxx.do
----------------------------------------------------------
在.js文件中不能直接访问jsp文件中通过jstl <c:set>标签定义的变量。
但是下例为什么可以正常运行?
ajax中url: '${_ctPath}/xxx_xxxxx.do'

但是ajax中作为参数data中a="${_ctPath}"又不行了
why...
-------------------------------------------------------------------
采用../../这样的相对路径 或者 绝对路径/Test/pages/...
css <link...
js  <script...
html中,<img src="."
请求, .do

以webRoot为准:
引入jsp <%@ include file="/pages/xxx/xxx.jsp" %>
分享到:
评论

相关推荐

    android中读取properties文件

    `.properties`文件通常包含一系列的键值对,每行一个,键和值之间用等号(`=`)或冒号(`:`)分隔。例如: ``` key1=value1 key2=value2 ``` 2. 读取`.properties`文件的方式 在Android中,有多种方式可以...

    Python实现读取Properties配置文件的方法

    `getProperties`方法负责打开文件,读取内容,并将键值对存储到字典中。 ```python class Properties: fileName = '' def __init__(self, fileName): self.fileName = fileName def getProperties(self): ...

    读取properties文件返回map

    `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` username=admin password=123456 database.url=jdbc:mysql://localhost:3306/mydb ``` 2. **java.util....

    JAVA读取properties文件的值

    这些数据以键值对的形式存在,键与值之间用等号(=)或冒号(:)分隔。本篇文章将详细探讨如何在Java中读取`properties`文件的值。 ### 1. `java.util.Properties` 类 Java提供了一个内置类 `java.util.Properties...

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    ### ResourceBundle与Properties读取Maven中Resources目录下的资源文件 #### 一、概述 在Java开发过程中,我们经常需要读取资源文件中的配置信息。在Maven项目中,`src/main/resources`目录下通常存放了各种配置...

    读取properties返回map并写入文件

    这是一种文本格式的文件,用于存储键值对,其中每个键和对应的值之间用等号(=)或冒号(:)分隔。例如: ``` key1=value1 key2=value2 ``` 读取.properties文件的主要工具有Java的Properties类。以下是一个简单的...

    Java读取properties文件的三种方式

    总结,Java中读取properties文件的方法包括使用Properties类加载文件、通过ClassLoader获取类路径下的文件以及利用try-with-resources语句进行资源管理。根据具体的应用场景,选择合适的方法可以更高效地处理配置...

    java读取properties配置文件

    在Java编程中,`properties`文件是一种常用的存储配置信息的方式,它以键值对的形式组织数据,便于程序在运行时动态获取和修改配置。本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    首先,让我们看看如何在Java中正确地读取Properties文件。读取Properties文件通常分为以下几步: 1. 创建Properties对象:`Properties prop = new Properties();` 2. 指定文件路径:`String filePath = "path_to_...

    怎样读取properties文件内容

    ### 如何使用Java读取properties文件内容 在Java开发中,`properties`文件是一种非常常见的配置文件格式,它主要用于存储程序的各种配置信息。通过这种方式,可以实现程序与配置的分离,便于维护和调整。本文将详细...

    properties文件的读取

    这些文件通常包含键值对,其中键和值之间用等号(=)或冒号(:)分隔,用于程序运行时设置变量或参数。`properties`文件的读取是Java开发中的常见操作,尤其在处理配置、国际化(i18n)或持久化数据时。 在Java中,...

    java完美读取properties文件

    它是一个文本文件,其中键值对以`key=value`的形式存储,每一行代表一个键值对,注释以`#`或`!`开始。 在Java中,我们可以使用`java.util.Properties`类来处理`properties`文件。下面是一步一步的实现过程: 1. ...

    Properties读取资源文件经典应用

    在Java编程中,Properties类是用于处理属性列表的,这些属性列表可以是包含键值对的文本文件,或者是在程序的类路径(classpath)中作为资源文件存在。本篇文章将详细探讨如何使用Properties类来读取资源文件,以及...

    SSM 读取properties文件

    此外,Spring Boot引入了更强大的`@ConfigurationProperties`,它能自动绑定properties文件中的键值对到bean的属性上,提供了更面向对象的配置方式。但这个特性属于Spring Boot范畴,不属于SSM的经典组合。 综上所...

    java实现properties文件读取

    `java.util.Properties`是Java提供的一个类,它继承了`Hashtable`,主要用于处理属性列表(键/值对)。以下是如何创建和加载Properties文件的基本步骤: 1. **创建Properties对象**: 在Java代码中,我们首先创建...

    java 读取资源文件

    本文将深入探讨如何使用Java读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径(classpath)下,可以是.properties、.txt、.xml等形式,它们提供了与代码分离的配置选项。对于....

    读取.properties文件

    `.properties`文件是一种基于键值对的文本格式,易于理解和编辑。在这个场景中,我们将探讨如何在Java中读取这类文件,以及一些相关的工具和技术。 首先,我们需要了解`.properties`文件的结构。每个属性由一行表示...

    spring读取properties

    在这个文件中,你可以定义各种键值对,例如数据库连接参数: ```properties user=sa password=sa driver=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://localhost:1433;databaseName=DB1 ```...

    java读取properties文件

    这种文件通常以键值对的形式存在,键和值之间用等号(=)或冒号(:)分隔。本篇文章将深入探讨如何在Java中读取`properties`文件,无需依赖任何第三方库。 首先,我们需要了解Java的标准库中提供的`java.util....

    java 动态修改Properties,src下或者指定路径

    在`main`方法中,获取当前工作目录的路径,拼接上Properties文件的路径,然后调用`writeData`方法,更新指定的键值对。 这个方法的一个限制是它假设Properties文件位于应用的运行目录或指定的任意可写路径下。在...

Global site tag (gtag.js) - Google Analytics