您的位置:首页 > 编程语言 > Java开发

关于cookie 类的Java操作

2016-02-26 08:30 471 查看

Cookie操作类、 包括创建、读取、修改、获取、销毁cookie

import java.util.Hashtable;

import java.util.Iterator;

import java.util.Set;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * Cookie的操作类

 *

 *

 */

public class CookieHandler

{

    /**

    * 创建cookie

    *

    * @param response

    *            回应

    * @param nameValues

    *            存入cookie的键值对

    * @param days

    *            设置cookie的有效期

    */

    public static void createCookie(HttpServletResponse response,

                                    Hashtable<String, String> nameValues, int days)

    {

        Set<String> set = nameValues.keySet();

        Iterator<String> it = set.iterator();

        for (; it.hasNext();)

        {

            String name = (String) it.next();

            String value = (String) nameValues.get(name);

            // 生成新的cookie

            Cookie cookie = new Cookie(name, value);

            // 设置有效日期

            cookie.setMaxAge(days * 24 * 60 * 60);

            // 设置路径(默认)

            cookie.setPath("/");

            // 把cookie放入响应中

            response.addCookie(cookie);

        }

    }

    /**

    * 读取Cookie

    *

    * @param request

    * @return Hashtable 返回cookie的键值对

    */

    public static Hashtable<String, String> getCookies(

        HttpServletRequest request)

    {

        Cookie[] cookies = request.getCookies();

        Hashtable<String, String> cookieHt = new Hashtable<String, String>();

        if (cookies.length > 0)

        {

            for (int i = 0; i < cookies.length; i++)

            {

                Cookie cookie = cookies[i];

                cookieHt.put(cookie.getName(), cookie.getValue());

            }

        }

        return cookieHt;

    }

    /**

    * 修改cookie中指定键的值

    *

    * @param request

    * @param name

    *            指定的键

    * @param value

    *            值

    */

    public static void setCookieValueByName(HttpServletRequest request,

                                            String name, String value)

    {

        Cookie[] cookies = request.getCookies();

        if (cookies.length > 0)

        {

            for (int i = 0; i > cookies.length; i++)

            {

                if (name.equalsIgnoreCase(cookies[i].getName()))

                {

                    cookies[i].setValue(value);

                }

            }

        }

    }

    /**

    * 得到指定键的值

    *

    * @param request

    * @param name

    *            指定的键

    * @return String 值

    */

    public static String getCookieValueByName(HttpServletRequest request,

            String name)

    {

        Cookie[] cookies = request.getCookies();

        String resValue = "";

        if (cookies.length > 0)

        {

            for (int i = 0; i > cookies.length; i++)

            {

                if (name.equalsIgnoreCase(cookies[i].getName()))

                {

                    resValue = cookies[i].getValue();

                }

            }

        }

        return resValue;

    }

    /**

    * 销毁cookie

    *

    * @param request

    * @param response

    */

    public static void deletesCookie(HttpServletRequest request,

                                     HttpServletResponse response)

    {

        Cookie[] cookies = request.getCookies();

        if (cookies != null)

        {

            for (int i = 0; i < cookies.length; i++)

            {

                Cookie cookie = cookies[i];

                // 销毁

                cookie.setMaxAge(0);

                response.addCookie(cookie);

            }

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: