在项目中需要保存客户的信息到Cookie中,因为客户要求针对常用业务操作的操作,用户可以一次设置之后,可以长时间的使用,即使下次登录,客户仍然使用可以使用。在客户登陆需要用户常用业务操作时,首先从Session中获取,如果Session中不存在,从Cookie获取,然后转换为需要的类型。
保存信息一般的可以
有两种设计方案:
(1)将客户的常用设置信息保存数据库
(2)将客户的属性保存本地的Cookie中下次登录时获取。
本人使用Cookie保存信息,客户设置信息,在Struts2 中 Action获取时采用模型驱动(ModenDriver方式),获取设置不是很方便。
在项目的开始本人想保存信息到Cookie,下次登录时从Cookie中获取各字段同时,使用反射转换为相应的数据类型(如枚举,Long等数据类型),之后发现使用json简单,同时减少了使用反射的不安全性。简化了各种操作。
于是本人采用JSon保存信息,将获得客户的设置信息的对象转换为json格式的字符串之后,保存到Cookie中,在用户下载登陆时可以从Cookie中获取。
备注:在存储JSON格式的字符串时必须将双引号转换为单引号,不然获取不到完整的数据。因为字符串是以双引号分割。项目中使用JSON将对象转换为字符串:
/**
* 将一个bean 对象转换为jsonobject对象的字符串
*
* @param ignoreJPATransient 是否忽略的输入的属性
* @param excludes 对象中字符串属性数组
* @param object 需要使用json持久化的对象
* @return
*/
private String jsonBuilder(boolean ignoreJPATransient, String[] excludes, Object object) {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setIgnoreJPATransient(ignoreJPATransient);
jsonConfig.setExcludes(excludes);
JSONArray json = JSONArray.fromObject(object, jsonConfig);
return json.toString();
}
将json字符串转换为对象的方式:
/**
* 将一个json的字符串转换bean对象
*/
private VacationOrderConditionConvertor json2BeanfromCookie() {
//从Cookie中获取数据
String jsonCookies = (String) cookies.get(DEFAULT_USE_QUERY_TYPE_COOKIE);
if (StringUtils.isNotBlank(jsonCookies)) {
// 从JSON字符串转换Bean对象
//备注将json对象存储到Cookie中时由于字符串中有特殊字符串,Cookie中将json对象添加
jsonCookies = jsonCookies.substring(1, jsonCookies.length() - 1);
JSONObject json = JSONObject.fromObject(jsonCookies);
VacationOrderConditionConvertor tmpvc = (VacationOrderConditionConvertor) JSONObject.toBean(json, VacationOrderConditionConvertor.class);
return tmpvc;
}
return null;
}
分享到:
相关推荐
一个json应用实例,清楚的介绍了json的相关语法及使用
用json-lib.jar在服务器端进行编辑json。
json在spring中的应用方式之一。适合初学者参考相关写法和实现思想。
一个移动应用开发工具,完全基于存储在JSON文件中的HTML创建App
jsonschema在开发及测试中的应用.doc
JSON在Web开发中的应用
json开发必备文档 json文档 json开发文档API
有关json在数据存储传输中的应用手册,好书一本,不要错过。
JSON采用完全独立于语言平台的文本格式(这一点与XML作用类似),使用JSON可以将对象中表示的一组数据转换为字符串,然后可以在各个应用程序之间传递这些字符串,或者在异步系统中进行服务器和客户端之间的数据传递...
它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, ...
尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript ...
本着探究 JSON 原理的目的,我将会在这DEMO中实现了一个简单的JSON解析器。由于 JSON 本身比较简单,解析起来也并不复杂。所以如果大家感兴趣的话,在看完本DEMO后,不妨自己动手实现一个 JSON 解析器。
JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例JSON应用实例
Ajax开发介绍,首先介绍Ajax的概念;DOM模型在Ajax中的应用;JSON在XMLHttpRequest中的应用;DOJO对XMLHttpRequest的改进。
//设置cookies function setCookie(name, value, expires, path, domain, secure) //根据cookies key值获取value ...* json字符串转json对象 */ var jsonObj = eval('('+jsonStr+')') 后台Java解析json
JSON在Android移动图书馆开发中的应用.pdf
Json开发使用到的jar包集合 Json开发使用到的jar包集合 Json开发使用到的jar包集合 Json开发使用到的jar包集合 Json开发使用到的jar包集合
它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,采用完全独立于编程语言的文本格式来存储和表示数据。 JSON与XML非常相似,都是用来存储数据的,并且都是基于纯...
NULL 博文链接:https://heidaosajia.iteye.com/blog/794662
一个关于Json应用的java例子,很实用哦