如何设计jsp页面读取配置文件

 我来答
匿名用户
2015-09-21
展开全部
package com.ydq.read.propertyfile;
2.
3.import java.io.InputStream;
4.import java.util.MissingResourceException;
5.import java.util.Properties;
6.import java.util.ResourceBundle;
7.
8./**
9. * 读取配置文件中的参数
10. *
11. * 一般情况下,首页的内容是比较比较多,但内容结构大多也有本同的地方,比方说某几块内容都是展示的文章,只是文章来源的类别不同,或者说某几个版面都展示商品,
12. * 只是商品所属分类不同罢了,那么我们在后台取数据时,都需要根据类别ID来取值的。一般做法都是把这些不同的来源ID在代码中写好,这种做法又分为以下三种情况:
13. *
14. * 1、前台写死ID,通过<jsp:include page="xx.do?id=xx">,可以进行动态的包含内容。
15. *
16. * 2、可在service层写一个id的数组,String[] ids =
17. * {“”,"",""};用ids数组的下标来获得id值,这样也可以实现,如果数据库的ID值发生改变,只需要改变service层的ID数组就行。
18. *
19. * 3、用配置文件(这个配置文件以.properties结尾)。将ID值写在配置文件中,表示的方法就和map一样,key=value,这样就OK。
20. *
21. * 下面我要说的是第三种方案,个人觉得第三种方案比第二种方案好,因为第二种方案改数据时,去找的话,有点不太方便。
22. *
23. * @author 姚大庆
24. *
25. */
26.public class CommonParam {
27.
28. private String propertyFileName;
29. private ResourceBundle resourceBundle;
30.
31. public CommonParam() {
32. propertyFileName = "ydqfile";
33. resourceBundle = ResourceBundle.getBundle(propertyFileName);
34. }
35.
36. public String getString(String key) {
37. if (key == null || key.equals("") || key.equals("null")) {
38. return "";
39. }
40. String result = "";
41. try {
42. result = resourceBundle.getString(key);// 根据key获取value
43. } catch (MissingResourceException e) {
44. e.printStackTrace();
45. }
46. return result;
47. }
48.
49. public static void main(String[] args) {
50. /*
51. * 方法一:直接通过java.util.ResourceBundle读取配置文件
52. * CommonParam test = new CommonParam();
53. * System.out.println(test.getString("ydqa"));
54. * System.out.println(test.getString("ydqb"));
55. * System.out.prwww.hnnedu.comintln(test.getString("ydqc"));
56. */
57.
58. /*
59. * 方法二:通过java中java.util.Properties对象读取配置文件
60. * */
61. CommonParam test = new CommonParam();
62. System.out.println(test.getPara("ydqfile.properties"));
63.
64. }
65.
66. /**
67. * 学习JAVA中java.util.Properties对象读取配置文件
68. * @param fileName 配置文件名
69. * @return 根据key返回value
70. */
71. public String getPara(String fileName) {
72. Properties prop = new Properties();
73. try {
74. InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName);
75. prop.load(is);
76. if (is != null)
77. is.close();
78. } catch (Exception e) {
79. System.out.println(e + " file " + fileName + " not found");
80. }
81. return prop.getProperty("ydqb");
82. }
追问
首先谢谢 你的回答,但是你说的不是我想要的答案,注意我说的是设计,当然你说的hashtable的子类Properties可以做,但是性能太低了.这个问题我解决了.写个拦截器就搞定了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式