java对cookie的操作

java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。

建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下


1

2

3

4

HttpServletRequest request 

HttpServletResponse response

Cookie cookie = new Cookie("cookiename","cookievalue");

response.addCookie(cookie);

下面建立一个有生命周期的cookie,可以设置他的生命周期


1

2

3

4

5

6

7

8

cookie = new Cookie("cookiename","cookievalue");

cookie.setMaxAge(3600);

//设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问

cookie.setPath("/");

response.addCookie(cookie);

下面介绍如何读取cookie,读取cookie代码如下


1

2

3

4

5

Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组

for(Cookie cookie : cookies){

    cookie.getName();// get the cookie name

    cookie.getValue(); // get the cookie value

}

上面就是基本的读写cookie的操作。我们在实际中最好进行一下封装,比如增加一个cookie,我们关注的是cookie的name,value,生命周期,所以进行封装一个函数,当然还要传入一个response对象,addCookie()代码如下


1

2

3

4

5

6

7

8

9

10

11

12

13

/**

 * 设置cookie

 * @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的时候,为了方便我们的操作,我们希望封装一个函数,只要我们提供cookie的name,我们便可以获取cookie的value,带着这个想法,很容易想到将cookie封装到Map里面,于是进行下面的封装


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

/**

 * 根据名字获取cookie

 * @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里面

 * @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;

}

时间: 2024-10-20 23:11:15

java对cookie的操作的相关文章

知识点整理之Java的Cookie操作

创建Cookie Java代码   // new一个Cookie对象,键值对为参数 Cookie cookie = new Cookie("key", "value"); // 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失 cookie.setMaxAge(60);  // 一分钟 // 将Cookie添加到Response中,使之生效 response.addCookie(cookie); 读取Cookie,读取Coo

Java对Cookie的添加和查询

/** * @Description: * * @Title: CookieUtil.java * @Package com.hupu.nac.util * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-1-15 上午10:17:51 * @version V2.0 */ package com.hupu.nac.util; import java.util.HashMap; import java.util

java session cookie的使用

Cookie; Session; URL重写; cookie在J2EE项目中的使用,Java中把Cookie封装成了java.servlet.http.Cookie类.每个Cookie都是该Cookie类的对象.服务器通过操作Cookie类对象,对客户端Cookie进行操作.通过request.getCookies()获取客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookiecookie)向客户端设置Cookie.Cookie对象使

Jquery对Cookie的操作

第一步:先引用jQuery的插件jquery-1.9.1.min.js 第二步:引用jquery.cookie.js插件 下对cookie的操作: $.cookie("cookieName", "cookieValue", { expires: 10, //有效日期 以 天 为单位 如果此项未设置则 浏览器关闭时就失效 path: "/" //cookie的路径 //,secure:true //默认值:false.如果为true,cookie的

java 对mongodb的操作

java 对mongodb的操作 1.1连单台mongodb Mongo mg = newMongo();//默认连本机127.0.0.1  端口为27017 Mongo mg = newMongo(ip);//可以指定ip 端口默认为27017 Mongo mg = newMongo(ip,port);//也可以指定ip及端口号 1.2连双台mongodb //ip为主机ip地址,port为端口号,dataBaseName相当于数据库名 DBAddress left = new DBAddre

Java I/O流操作(二)---缓冲流[转]

转自:http://blog.csdn.net/johnny901114/article/details/8710403 一.BufferWriter类 IO的缓冲区的存在就是为了提高效率,把要操作的数据放进缓冲区,然后一次性把缓冲区的内容写到目的地,而不是写一次就往目的地写一次. 在这里要注意的是当我们关闭了缓冲区对象实际也关闭了与缓冲区关联的流对象. BufferWriter类 try { FileWriter fw =new FileWriter("test.txt"); //使

java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射

java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果文件超大的话,更快的方式是采用MappedByteBuffer. MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高.NIO最主要的就是实现了对异步操作的支持.其中一种通过把一个套接字通道(SocketChannel)注册到一个选择器(Selector)中,不时调用后者的选择(select)方法就能返回满足的选择键(SelectionKey

java中的集合操作类(未完待续)

申明: 实习生的肤浅理解,如发现有错误之处,还望大牛们多多指点 废话 其实我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList<XXXXX>(); 但是我仅仅只是了解,list这个类是一个可变长用来存储的对象实例的类,我甚至觉得这个List对象可以理解成数组,但是却又与java中咱们正常理解的数组很多的不同,比如说,他的长度可以随着需要自动增长,比如说,实例化一个List类就和咱们声明数组的时候是不一样的! 今天的实习生活

java生成Excel及操作Excel

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6