客户在使用华丹快速开发平台过程中,因施工环境比较恶劣,需要保存登录信息,减少信息的输入,本文使用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;

}