⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cookieutil.java

📁 spring+acegi编写的网上书城
💻 JAVA
字号:
package net.livebookstore.util;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

import javax.servlet.http.Cookie;

import net.livebookstore.domain.Book;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


/**
 * CookieUtil to simplify cookie operation.
 * 
 * @author Xuefeng
 */
public class CookieUtil {

    private static final int MAX_AGE = (-1); // session scope!
    private static final String PATH = "/cart";
    private static final String BOOK_COOKIE = "BC#";

    private static Log log = LogFactory.getLog(CookieUtil.class);

    /**
     * Return a book cookie to delete immediately.
     * 
     * @param bookId Book's id.
     */
    public static Cookie deleteBookCookie(String bookId) {
        String name = BOOK_COOKIE + bookId;
        Cookie cookie = new Cookie(name, "any");
        cookie.setMaxAge(0);
        cookie.setPath(PATH);
        return cookie;
    }

    public static Cookie book2Cookie(Book book) {
        String name = BOOK_COOKIE + book.getId();
        String value = book.getPrice() + "|"
                     + book.getDiscount() + "|"
                     + encode(book.getName());
        log.info("[book2cookie] name: " + name);
        log.info("[book2cookie] value: " + value);
        Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(MAX_AGE);
        cookie.setPath(PATH);
        return cookie;
    }

    public static Book cookie2Book(Cookie cookie) {
        String name = cookie.getName();
        try {
            if(name.startsWith(BOOK_COOKIE)) {
                String id = name.substring(BOOK_COOKIE.length());
                String value = cookie.getValue();
                log.info("[cookie2book] name: " + name);
                log.info("[cookie2book] value: " + value);
                String[] bk = value.split("\\|", 3);
                if(bk.length==3) {
                    Book book = new Book();
                    book.setId(id);
                    book.setPrice(Float.parseFloat(bk[0]));
                    book.setDiscount(Integer.parseInt(bk[1]));
                    book.setName(decode(bk[2]));
                    return book;
                }
            }
        }
        catch(Exception e) {}
        return null;
    }

    private static String encode(String s) {
        try {
            return URLEncoder.encode(s, "UTF-8");
        }
        catch(UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
    }

    private static String decode(String s) throws UnsupportedEncodingException {
        return URLDecoder.decode(s, "UTF-8");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -