客户在使用华丹快速开发平台过程中,因施工环境比较恶劣,需要保存登录信息,减少信息的输入,本文使用js+jsp实现。
1、cookie参数介绍
(1)name:必需。规定 cookie 的名称。
(2)value:必需。规定 cookie 的值。
(3)expire:可选。规定 cookie 的有效期。
(4)path:可选。规定 cookie 的服务器路径。
(5)domain:可选。规定 cookie 的域名。
(6)secure:可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
(7)httponly:可选,规定是否通过JS脚本获取cookie。
2、cookie存储
(1)创建存储cookie的jsp文件,主要代码如下
Cookie cookie = new Cookie("name","value");
cookie.setMaxAge(60*60*24*10);
cookie.setPath("适用地址");
cookie.setHttpOnly(true);
response.addCookie(cookie);
(2)登录页面通过ajax将登录信息传递到jsp,主要代码如下
function saveCookie(key,val,expire,path){
var url =charisma.contextPath+"/saveCookie.jsp";
var reqData ="keyStr="+escape(key)+"&valStr="+escape(val)+"&pathStr="+path;
var xHttp = new XHttp(url);
xHttp.method = "POST";
xHttp.reqData = reqData;
xHttp.async=false;
xHttp.callback=function(xmlHttp){
var responseText = xmlHttp.responseText;
}
xHttp.send();
xHttp=null;
}
3、cookie获取
(1)创建获取cookie的jsp文件,主要代码如下:
Cookie[] cookies = request.getCookies();
String val = "not Data";
if (cookies != null )
{
for (int i = 0; i < cookies.length; i++)
{
Cookie c = cookies[i];
if(c.getName().equalsIgnoreCase(key))
{
val = c.getValue();
}
}
}
if(!"not Data".equals(val)){
String FTS = "HytorcLoginInfoFilterString";
DesUtil desUtil = new DesUtil();
val = desUtil.decrypt(val,FTS);
}else{
val="";
}
out.println(val);
(2)登录页面通过ajax获取cookie信息,主要代码如下
function getCookieValForName(cookieName){
var cookieVal = "not Have This Cookie";
var url =charisma.contextPath+"/getCookieVal.jsp";
var reqData ="cKey="+cookieName;
var xHttp = new XHttp(url);
xHttp.method = "POST";
xHttp.reqData = reqData;
xHttp.async=false;
xHttp.callback=function(xmlHttp){
var responseText = xmlHttp.responseText;
cookieVal = unescape(responseText);
}
xHttp.send();
xHttp=null;
return cookieVal;
}