博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java cooki的使用
阅读量:5298 次
发布时间:2019-06-14

本文共 2549 字,大约阅读时间需要 8 分钟。

session: 

当新客户端发现一个HTTP请求时服务端会创建一个session.并分配一个sessionID作为服务端来客户端的识别,session对象会 保存在服务端.此时session对象处天NEW STATE状态,如果调用 session.isNew()则返回true. 
当服务器处理完后,会将sessionID同reponse 一起传回客户端,并将其存到cookie中; 
当客户端再发送请求的时候.会将sessionID连同request一起发送给服务端; 
服务端再根据传过来的sessionID将这次request与保存在服务端的session对象联系起来.此时的session对象已不是NEW STATE状态. 
这样循环多次.直到超时或销毁. 
注:当禁用cookie时也是不能使用session的;

cookie: 

cookie是在客户端保存的方案.而session是在服务端保存的方案. 
如果cookie不设定时间的话就表视它的生命周期为浏览器会话的期间,只要关闭IE,cookie就消失了 
这种cookie被称为会话cookie.其一般不保存在硬盘上.而是保存在内存中. 
如果设置了过期时间.那么浏览器会把cookie保存到硬盘中,再次打IE时会依然有效.直到它的有效期 
超时; 
注:存储在硬盘中的cookie可以在不同IE间共享;

 

工具类:

CookieTool (Cookie帮助类):

package com.utcsoft.common.cookie;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieTool {

/**

* 设置cookie(接口方法)
* @author 刘鹏
* @param response
* @param name cookie名字
* @param value cookie值
* @param maxAge cookie生命周期 以秒为单位
*/
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
if(maxAge>0){
cookie.setMaxAge(maxAge);
}
response.addCookie(cookie);
}
/**
* 根据名字获取cookie(接口方法)
* @author 刘鹏
* @param request
* @param name cookie名字
* @return
*/
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
/**
* 将cookie封装到Map里面(非接口方法)
* @author 刘鹏
* @param request
* @return
*/
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}
}

 

在控制器添加HttpServletResponse httpResponse

给cookie赋值       CookieTool.addCookie(httpResponse , "你的cookie名称" ,“你的cookie值” , 0);

给cookie赋值       CookieTool.addCookie(httpResponse , "你的cookie名称" ,“你的cookie值” , 3600);

 

获取Cookie在jsp写:

<%

String ndoeId=null;

Cookie[] cookies = request.getCookies();
// 然后迭代之
if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null
for (Cookie cookie : cookies) {
String name = cookie.getName();
// 找到需要的Cookie
if (name.compareTo("XXXXX") == 0) {
ndoeId=cookie.getValue();
}
}
}

%>

 

$(document).ready(function() {

var mycookie="<%=mycookie%>";

alert(mycookie);

}

 

转载于:https://www.cnblogs.com/lingzhihua/p/4899948.html

你可能感兴趣的文章
Android ViewPager 动画效果
查看>>
Android UI-仿微信底部导航栏布局
查看>>
MySQL 第六天
查看>>
python 笔记一
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
Spring 自动装配;方法注入
查看>>
浏览器的判断;
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
uva 10791
查看>>
python的字典(dict)的键值对存储规则
查看>>
more 分页显示文件内容
查看>>
ubuntu18 tensorflow cpu fast_rcnn
查看>>
PageHelper在Mybatis中的使用
查看>>
POJ 1742 Coins
查看>>
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
ADO.Net——增、删、改、查
查看>>