日期:2014-05-16  浏览次数:20315 次

读取配置文件中的参数(如何设计JSP页面读取配置文件中参数)
package com.ydq.read.propertyfile;

import java.io.InputStream;
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;

/**
 * 读取配置文件中的参数
 * 
 * 一般情况下,首页的内容是比较比较多,但内容结构大多也有本同的地方,比方说某几块内容都是展示的文章,只是文章来源的类别不同,或者说某几个版面都展示商品,
 * 只是商品所属分类不同罢了,那么我们在后台取数据时,都需要根据类别ID来取值的。一般做法都是把这些不同的来源ID在代码中写好,这种做法又分为以下三种情况:
 * 
 * 1、前台写死ID,通过<jsp:include page="xx.do?id=xx">,可以进行动态的包含内容。
 * 
 * 2、可在service层写一个id的数组,String[] ids =
 * {“”,"",""};用ids数组的下标来获得id值,这样也可以实现,如果数据库的ID值发生改变,只需要改变service层的ID数组就行。
 * 
 * 3、用配置文件(这个配置文件以.properties结尾)。将ID值写在配置文件中,表示的方法就和map一样,key=value,这样就OK。
 * 
 * 下面我要说的是第三种方案,个人觉得第三种方案比第二种方案好,因为第二种方案改数据时,去找的话,有点不太方便。
 * 
 * @author 姚大庆
 * 
 */
public class CommonParam {

	private String propertyFileName;
	private ResourceBundle resourceBundle;

	public CommonParam() {
		propertyFileName = "ydqfile";
		resourceBundle = ResourceBundle.getBundle(propertyFileName);
	}

	public String getString(String key) {
		if (key == null || key.equals("") || key.equals("null")) {
			return "";
		}
		String result = "";
		try {
			result = resourceBundle.getString(key);// 根据key获取value
		} catch (MissingResourceException e) {
			e.printStackTrace();
		}
		return result;
	}

	public static void main(String[] args) {
		/*
		 * 方法一:直接通过java.util.ResourceBundle读取配置文件
		 * CommonParam test = new CommonParam();
		 * System.out.println(test.getString("ydqa"));
		 * System.out.println(test.getString("ydqb"));
		 * System.out.println(test.getString("ydqc"));
		 */

		/*
		 * 方法二:通过java中java.util.Properties对象读取配置文件
		 * */
		 CommonParam test = new CommonParam();
		 System.out.println(test.getPara("ydqfile.properties"));
		 
	}
	
	/**
	 * 学习JAVA中java.util.Properties对象读取配置文件
	 * @param fileName 配置文件名
	 * @return 根据key返回value
	 */
	public String getPara(String fileName) {
		Properties prop = new Properties();
		try {
			InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName);
			prop.load(is);
			if (is != null)
				is.close();
		} catch (Exception e) {
			System.out.println(e + " file " + fileName + " not found");
		}
		return prop.getProperty("ydqb");
	}

}