cookie的一些使用(js与jsp中的不同):
在cookie中存放一组消息的Id,每个Id用逗号‘,’相隔,刚开始用javascript增加Cookie,例:
var log = getCookie("visitedMsgs"); if(log){var arr = log.split(",");log = apptar_messageid;if(arr && arr.length > 0){ var j = 0; for(var i = 0; i < arr.length; i++) { if(arr != apptar_messageid) { log += "," + arr; j++; if(j >= 9) { break; } } }} } else {log = apptar_messageid; } addCookie("visitedMsgs", log, 5);但是在使用JSP页面读取的时候只能得到第一个消息的Id。后改用JSP增加Cookie。
例:
Cookie[] cookies = request.getCookies(); if(cookies!=null){ for(int i=0;i<cookies.length;i++){Cookie cookie = cookies; if(cookie.getName().equals("lookMsgs")){ String msgStr = cookie.getValue(); String[] msgs = msgStr.split(","); if(msgs!=null && msgs.length>0){ int k = 0; for(int j=0;j<msgs.length;j++){ if(!msgs.equals(request.getParameter("msgId"))){ msgId += ","+ msgs; k++; if(k>=5){ break; } } } } }} Cookie cook = new Cookie("lookMsgs",msgId); cook.setMaxAge(7200000);response.addCookie(cook);察看Cookie发现两种增加Cookie的结果略有不同:javascript的Cookie比JSP的Cookie少了一对双引号“”;
但这次却没有得到"lookMsgs"的Cookie;再次查看Cookie发现Cookie中有一项path显示"lookMsgs"Path为"/detail/index.jsp".
最后在response.addCookie(cook);前增加一条语句:cook.setPath("/");问题解决。
页:
[1]