cookie应用 显示上次浏览商品的实现过程
来源:互联网 发布:ubuntu安装飞秋 编辑:程序博客网 时间:2024/05/21 12:42
public class CookieDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//显示所有书名
out.print("本网站的商品有:<br/>");
BookDao bd = new BookDao();
List<Book> list = bd.getAll();
for(Book book:list){
//System.out.println(book.getId());
//out.print("<a href='/BookHistory/servlet/CookieDemo2'?id="+book.getId()+">"+book.getName()+"</a><br/>");
out.print("<a href='/BookHistory/servlet/CookieDemo2?id="+book.getId()+"' target='_blank'>"+book.getName()+"</a><br/>");
}
//显示浏览过的书名 bookhistory=1,2,3
out.print("你浏览过的商品:<br/>");
Cookie[] cookies = request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++){
if(cookies[i].getName().equals("bookhistory")){
String[] ids = cookies[i].getValue().split(",");
for(String id:ids){
Book book = bd.getBook(id);
out.print(book.getName()+"<br/>");
}
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
public class CookieDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//显示书的详细信息,根据id获取
String id = request.getParameter("id");
System.out.println(id);
BookDao bd = new BookDao();
Book book = bd.getBook(id);
System.out.println(book);
out.print("书号:"+book.getId()+"<br/>");
out.print("书名:"+book.getName()+"<br/>");
out.print("作者:"+book.getAuthor()+"<br/>");
out.print("描述:"+book.getDescript()+"<br/>");
String cookieValue = buildCookValue(id,request);
Cookie cookie = new Cookie("bookhistory",cookieValue);
cookie.setMaxAge(30*24*3600);
cookie.setPath("/BookHistory");
response.addCookie(cookie);
}
public String buildCookValue(String id,HttpServletRequest request){
String bookhistory=null;
Cookie[] cookies = request.getCookies();
for(int i=0;cookies!=null && i<cookies.length;i++){
if(cookies[i].getName().equals("bookhistory")){
bookhistory = cookies[i].getValue();
}
}
if(bookhistory == null){
return id;
}
LinkedList<String> list = new LinkedList(Arrays.asList(bookhistory.split(",")));
if(list.contains(id)){
list.remove(id);
list.addFirst(id);
}else{
//bookhistory=2,3,5 1 1,2,3
//bookhistory=2,3 1 1,2,3
if(list.size()>=3){
list.removeLast();
list.addFirst(id);
}else{
list.addFirst(id);
}
}
StringBuffer sb = new StringBuffer();
for(String bid: list){
sb.append(bid+",");
}
return sb.deleteCharAt(sb.length()-1).toString();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
- cookie应用 显示上次浏览商品的实现过程
- Cookie的应用:显示用户上次浏览过的商品
- cookie案例之显示用户上次浏览过的商品
- 显示用户上次浏览过的商品
- 利用cookie显示上次浏览的时间
- Servlet中用Cookie实现浏览商品的过程
- JavaWeb_使用Cookie模拟实现显示最近浏览的商品
- 利用cookie显示浏览过的商品
- 利用cookie显示商品的浏览记录
- 利用Cookie显示最近浏览的商品
- Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)
- javaweb之Cookie显示商品的浏览记录和Cookie的常见应用有哪些
- 使用cookie模拟网站显示客户机上次访问的商品
- cookie实现商品浏览记录的原理
- cookie实现最近浏览商品
- 利用Cookie,实现动态显示用户曾经浏览过的商品
- 用Cookie实现购物车中只显示最近浏览的五件商品
- 使用cookie+工具类实现的 记录显示 用户【浏览商品记录】
- vc6 使用richedt2.dll的两种方法
- Android Alert Dialog解决点击按钮对话框不关闭的问题
- 怎样获取屏幕分辨率
- 静态成员(静态成员函数,静态数据成员)的特性
- 对cookie技术、session技术进行小结
- cookie应用 显示上次浏览商品的实现过程
- Java 设计模式 之 桥接模式
- servlet
- 软件开发过程及其组织
- Linux操作系统环境下jdk的配置和tomcat中web项目部署(从U盘中)
- 会话管理 Cookie
- ServletContext
- JDBC
- objective-c Unicode转中文