实战:键值对储存在properties中

键值对储存在properties中

对于以下的情况:

  • 数据量不是很大
  • 键值对应的关系

如果同时满足这两种结论,我们将数据保存在数据库表中是没有什么意义的。如果遇到这种情况,我们需要用到properties属性文件中。然后在服务器启动的时候进行解析,然后放入全局作用域对象中。
注意:在ideal中,对于中文是很不友好的,因此,我们在储存的时候,要注意储存中文时候,存储的是他的编码。
在创建好属性文件后,在监听器进行读取,代码如下:

  Map<String,String> pMap=new HashMap<>();
  ResourceBundle rb=ResourceBundle.getBundle("properties文件名,注意不加后缀");
  //切记切记,不要加后缀名
   //枚举类型:
        Enumeration<String> e=rb.getKeys();
        while (e.hasMoreElements()){
            String key=e.nextElement();
            //迭代器遍历器是最快的,所以,迭代器还是很需要的。尽量使用迭代器
            //可能性
            String value=rb.getString(key);
            pMap.put(key,value);
        }
        //将pMap保存到缓存中
        application.setAttribute("pMap",pMap);

在js代码中取得键值对的代码:

<%
Map<String,String> pMap= (Map<String, String>) application.getAttribute("pMap");
Set<String> set=pMap.keySet();
%>

我们已经有了键值对的对应关系,在服务器的缓存中呢,但是那个是java的代码,我们需要在js中使用,怎么办?我们首先将pMap转换为js的键值对关系。js中的键值对关系,只有一种,那就是json,将pMap转换为json对象,代码如下:

var json={
			<%
			for (String key:set){
				String value=pMap.get(key);
			%>
			    "<%=key%>" :<%=value%>,
			<%
			}
			%>
		};

以上代码是在js中的。注意,最后一个对应关系结束后,那个,是不是在代码中必须去掉?其实是不需要的,json会自己去掉的。
我们是用json.key的形式不能取得value,因为当key对应的stage是一个可变的变量,如果是这,就不能以传统的json.key取值,我们需要的取值方式是json[key]。

猜你喜欢

转载自blog.csdn.net/qq_41984117/article/details/109689099