【JavaWeb】Cookie
来源:互联网 发布:矩阵音频口 编辑:程序博客网 时间:2024/05/16 03:59
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
//网站首页:显示用户上次访问时间public class CookieDemo1 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");response.getWriter().write("您上次访问时间是:"); //lastAccessTime=2323878327//您上次访问时间Cookie cookies[] = request.getCookies();for(int i=0;cookies!=null&& i<cookies.length;i++){Cookie cookie = cookies[i];if(cookie.getName().equals("lastAccessTime")){long time = Long.parseLong(cookie.getValue());Date d = new Date(time);response.getWriter().write(d.toLocaleString());}}//向浏览器发送本次访问的时间Cookie cookie = new Cookie("lastAccessTime",System.currentTimeMillis()+"");//cookie.setMaxAge(0);cookie.setPath("/test");response.addCookie(cookie);}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.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//显示网站所有商品out.write("本网站有如下商品<br/><br/>");Set<Map.Entry<String, Book>> set = Db.getAllBook().entrySet();for(Map.Entry<String, Book> me : set){String id = me.getKey();Book book = me.getValue();out.write("<a href='/test/servlet/CookieDemo3?id="+id+"' target='_blank'>"+book.getName()+"</a><br/>");}//显示用户曾经浏览过的商品out.write("<br/><br/><br/>您看过如下商品:<br/><br/>");Cookie cookies[] = request.getCookies();for(int i=0;cookies!=null && i<cookies.length;i++){if(cookies[i].getName().equals("bookHistory")){ //bookHistory=1_2_3String value = cookies[i].getValue();String ids[] = value.split("\\_"); //_for(String id: ids){Book book = (Book) Db.getAllBook().get(id);out.write(book.getName()+"<br/>");}}}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}class Db{private static Map<String,Book> map = new LinkedHashMap();static{map.put("1", new Book("1","javaweb开发","author1","一本好书"));map.put("2", new Book("2","jdbc开发","author1","一本好书"));map.put("3", new Book("3","sprng开发","author2","一本好书"));map.put("4", new Book("4","hibernate开发","author1","一本好书"));map.put("5", new Book("5","strurs开发","author2","一本好书"));}public static Map getAllBook(){return map;}}class Book{private String id;private String name;private String author;private String discription;public Book() {}public Book(String id, String name, String author, String discription) {super();this.id = id;this.name = name;this.author = author;this.discription = discription;}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 getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getDiscription() {return discription;}public void setDiscription(String discription) {this.discription = discription;}}
//显示商品详细信息public class CookieDemo3 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();// 根据用户带的id,显示商品信息String id = request.getParameter("id");Book book = (Book) Db.getAllBook().get(id);out.write(book.getId() + "<br/>");out.write(book.getName() + "<br/>");out.write(book.getAuthor() + "<br/>");out.write(book.getDiscription() + "<br/>");//给用户发cookieString value = makeBookHistory(request,id);Cookie cookie = new Cookie("bookHistory",value);cookie.setMaxAge(3600);response.addCookie(cookie);}//创建向用户发送的 cookie值private String makeBookHistory(HttpServletRequest request, String id) {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();}}//bookHistory=null 3 bookHistory=3//bookHistory=1 3 bookHistory=3_1//bookHistory=1_4_5 3 bookHistory=3_1_4//bookHistory=1_3_5 3 bookHistory=3_1_5if(bookHistory==null){bookHistory = id;return bookHistory;}//bookHistory=1_3_5 LinkedList<String> list = new LinkedList(Arrays.asList(bookHistory.split("\\_"))); //list[1,3,5] 3 /*if(list.contains(id)){list.remove(id);list.addFirst(id);}else{if(list.size()>=3){ //list[1,4,5] 3 list.removeLast();list.addFirst(id);}else{list.addFirst(id);}}*/if(list.contains(id)) list.remove(id);else{if(list.size()>=3) list.removeLast();}list.addFirst(id);StringBuffer sb = new StringBuffer();for(String bid : list){sb.append(bid+"_");}sb.deleteCharAt(sb.length()-1);return sb.toString();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
- 【JavaWeb】Cookie
- JavaWeb Cookie
- javaWeb---cookie
- JavaWeb Cookie
- 【JavaWeb】cookie与session
- JavaWeb---Cookie的使用
- JavaWeb中的Cookie
- javaweb--Cookie&Session
- JavaWeb--Session、Cookie
- javaWeb中的cookie
- javaweb(三)<session cookie>
- javaweb中的cookie
- JavaWeb---会话管理---Cookie
- javaWeb基础知识----Cookie,Session
- JavaWeb 之 Cookie详解
- JavaWeb--Session、Cookie
- javaweb中cookie用法
- 【Javaweb】cookie和session
- dbms_output in SQL Developer 不输出
- SQL笔记 --- 数据库设计步骤
- C#获取周一,周日的日期
- LMOS-00.02发布了!!
- SQL笔记 --- 数据库发展,基本概念,关系数据库理论,关系模型,SQL概述
- 【JavaWeb】Cookie
- 100多种js语法
- 中缀表达式的计算(含出错处理,括号处理)
- HTTP 协议的通用头域via 的意义以及作用
- hadoop学习笔记-4-eclipse运行MapReduce
- STL map中key为结构体的用法
- 小执着的伤感空间日志:童话般虚幻、却没有童话般的结局
- 老爷机的第二春, HTPC变形记
- Unicode编程小例