java查看cookie_Java使用cookie显示最近查看过的书

本文实例为大家分享了Java使用cookie显示最近查看过的书的相关方法,供大家参考,具体内容如下

1.ben包

import java.io.Serializable;

public class Book implements Serializable {

private String id;

private String name;

private String price;

private String auth;

private String publish;

private String description;

public Book() {

}

public Book(String id, String name, String price, String auth,

String publish, String description) {

super();

this.id = id;

this.name = name;

this.price = price;

this.auth = auth;

this.publish = publish;

this.description = description;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPrice() {

return price;

}

public void setPrice(String price) {

this.price = price;

}

public String getAuth() {

return auth;

}

public void setAuth(String auth) {

this.auth = auth;

}

public String getPublish() {

return publish;

}

public void setPublish(String publish) {

this.publish = publish;

}

}

2.Dao包

import java.util.LinkedHashMap;

import java.util.Map;

import cn.huiyu.ben.Book;

public class BookDao {

private static Map bookMap = new LinkedHashMap();

private BookDao() {

}

static{

bookMap.put("1", new Book("1","1111","11.0","zqwang","111出版社","111111111"));

bookMap.put("2", new Book("2","2222","22.0","zqwang","222出版社","222222222"));

bookMap.put("3", new Book("3","3333","33.0","zqwang","333出版社","333333333"));

}

public static Map getBooks(){

return bookMap;

}

public static Book getBook(String id){

return bookMap.get(id);

}

}

3.servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

//1.查询数据库中所有的书展示

Map map = BookDao.getBooks();

for(Map.Entry entry : map.entrySet()){

Book book = entry.getValue();

response.getWriter().write(""+book.getName()+"
");

}

response.getWriter().write("


");

//2.显示之前看过的书

Cookie [] cs = request.getCookies();

Cookie findC = null;

if(cs!=null){

for(Cookie c : cs){

if("last".equals(c.getName())){

findC = c;

}

}

}

if(findC == null){

response.getWriter().write("没有看过任何书!");

}else{

response.getWriter().write("您曾经浏览过的书:
");

String[] ids = findC.getValue().split(",");

for(String id : ids){

Book book = BookDao.getBook(id);

response.getWriter().write(book.getName()+"
");

}

}

}

4.servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

//1.获取要看的书的id,查询数据库找出书,输出书的详细信息

String id = request.getParameter("id");

Book book = BookDao.getBook(id);

if(book==null){

response.getWriter().write("找不到这本书!");

return;

}else{

response.getWriter().write("

书名:"+book.getName()+"

");

response.getWriter().write("

作者:"+book.getAuth()+"

");

response.getWriter().write("

售价:"+book.getPrice()+"

");

response.getWriter().write("

出版社:"+book.getPublish()+"

");

response.getWriter().write("

描述信息:"+book.getDescription()+"

");

}

//2.发送cookie保存最后看过的书

// --- 1 --> 1

// 1 --2,1 --> 2,1

// 2,1--3,2,1 --> 3,2,1

// 3,2,1 -- 4,3,2 --> 4,3,2

// 4,3,2 --3,4,2 --> 3,4,2

String ids = "";

Cookie [] cs = request.getCookies();

Cookie findC = null;

if(cs!=null){

for(Cookie c : cs){

if("last".equals(c.getName())){

findC = c;

}

}

}

if(findC == null){

//说明之前没有看过书的记录

ids += book.getId();

}else{

//说明之前有历史看过的书的记录,需要根据历史记录算一个新的记录出来

String [] olds = findC.getValue().split(",");

StringBuffer buffer = new StringBuffer();

buffer.append(book.getId()+",");

for(int i = 0;i

String old = olds[i];

if(!old.equals(book.getId())){

buffer.append(old+",");

}

}

ids = buffer.substring(0, buffer.length()-1);

}

Cookie lastC = new Cookie("last",ids);

lastC.setMaxAge(3600*24*30);

lastC.setPath(request.getContextPath());

response.addCookie(lastC);

}

以上就是本文的全部内容,希望对大家学习Java使用cookie显示最近查看过的书的方法有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值