package cn.itcast;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry; import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CookieDemo extends HttpServlet { /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
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/>");
Map<String,Book> map=Db.getAll();
for(Entry<String, Book> entry: map.entrySet()){
Book book=entry.getValue();
out.print("<a href='/day01/servlet/CookieDemo2?id="+book.getId()+"' target='_blank'>"+book.getName()+"</a></br>"); }
//显示用户看过的商品
out.print("<br/>看过的商品<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=(Book) Db.getAll().get(id); out.print(book.getName()+"<br/>");
}
}
} } /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
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","java开发1","zsan1","一本好书1"));
map.put("2", new Book("2","java开发2","zsan2","一本好书2"));
map.put("3", new Book("3","java开发3","zsan3","一本好书3"));
map.put("4", new Book("4","java开发4","zsan4","一本好书4")); }
public static Map getAll(){
return map;} }
class Book{
private String id;
private String name;
private String author;
private String desc; public Book() {
super();
// TODO Auto-generated constructor stub
}
public Book(String id, String name, String author, String desc) {
super();
this.id = id;
this.name = name;
this.author = author;
this.desc = desc;
}
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 getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
} }
package cn.itcast;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CookieDemo2 extends HttpServlet { /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//根据用户带过来的id显示相应的详细信息
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
out.write("本站所有商品<br/>");
String id=request.getParameter("id");
Book book=(Book) Db.getAll().get(id);
out.write(book.getDesc());
//2.构建cookie,回写给浏览器
String cookieValue=bulidCookie(id,request);
Cookie cookie=new Cookie("bookHistory",cookieValue);
cookie.setMaxAge(30*24);
cookie.setPath("/day01");
response.addCookie(cookie); } private String bulidCookie(String id, HttpServletRequest request) {
// TODO Auto-generated method stub
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(cookies==null)
{
return id;
}
LinkedList<String> list= new LinkedList(Arrays.asList(bookHistory.split("\\,")));
if(list.contains(id)){
list.remove(id);
list.addFirst(id); }
else
{
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(); } /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet( request,response);
} }

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPIAAABzCAIAAAAt5siOAAAEWElEQVR4nO3c0ZGbMBRGYdWlglQP1dAMxWweWIyE7kUSg9fxz/kekgkGmwwHLGNw+AHkhE+vAHA/soYgsoYgsoYgsoYgsoYgsoYgsoYgsoagsaznFOK0+I8vUwwhzeb00wV/5hRCvegyxWBN73vO3rWDnHuz9mJzElxbDiGE/dFsmtPzPt9wor27l4+94iv4Wbc2sLexrd78rKup7p4zsj4hzUOz7yt8tuMuUyTr7zBytN5KMTftNl4wY6keXNMZyvr4WgOB1c+5TNHdecj6+/VnPaeQUgoxJaeIE+1ByGs36BvnXBlVvxZZ12ZeyFpWb9br5l7/XKZobd189HHouGMQsi3dyro1uDi8aofi5RhbS+jLemst+9vYvlmRhzjHsvbTOzszUr9McXR9rXIxU7ViHK0ldGSdbfp9o1ubf5/xGMC1o7VRaUhz4xhsZL0ukeZlyWJe5xw/S4hv0My6OLFhdZjJO9p78t/JG2PrornX9JNjpnW0nqYYYkrVisSUfh/I3mHM9fSm4/91nvWcyqFneYyuT0j8Pr694VvHwmxvOA4SQpqLRfxz4KODkOMyxT6SZ73PtC9S/qcvnS/HH/Oz3t6682nV0GNOoW7BjCZfwsq6fvgk67FBCFk/jpv1vvnckwOvk8/ep65G1sYHzyKae4/W5sqTtaa7vzzP94J1XOtmbX5JcixrOOvsIf9oXcxC1npuyzqruUjDkmbruaqhem/W+dvJcXmnwGyRYnRvfTTkI+P3eeuFqWeDkGoEUkf4x2ffOFrr4HprCCJrCCJrCCJrCCJrCCJrCHpv1s2vb3q+3+lclstG8fLZrMsUG9/SN558WZY5HWcuvhAi+se4L+srt/R2/UCDN4u9cHlh6z6DdeUWVL3zaH12S2+9E9SJHg++7R2nfbsYXT/C+7LuuKX37NYA+/dwzKWdfx/x6zfP8a6sO27pzQYJVdY9d5cPfmS8cMM6vpWXdedd2867f9ctvVmH5tV8rQPrWNYMQZ7kDUfr3lt6y9sN0nS2I8Vp6v9E6t1RQ9SPcXvW3bf07v82jrMXjtb7gta1sAw/HuXerAdv6V0nTEbC92XNkPqJ7sv6yi295pTtyW7ImsHHQ92W9bVbepcphhjr71yuZl28IfAp8bE++uV5+TNQoxd4FGe9d/nPMdSo/BE+mPXZXYGXByHAzwcvTHVPZbtn6YxnIGuYuN4agsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagsgagv4BEFg/XxQ+e0IAAAAASUVORK5CYII=" alt="" />

aaarticlea/png;base64,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" alt="" />

最新文章

  1. float---浮动带来的影响与清除浮动带来的影响方法----在路上(20)
  2. Centos7中所有的关机命令的奇怪现象
  3. hdu4940 Destroy Transportation system(2014多校联合第七场)
  4. 在html中添加缩放meta
  5. 迷时师度,悟了自度(时间的边际效应),附VC参考书
  6. android 语言切换过程分析
  7. [原]项目进阶 之 持续构建环境搭建(二)Nexus私服器
  8. UIButton上使用UIEdgeInsetsMake让title跟图片对齐
  9. CentOS 5升级Python版本(2.4&gt;2.7)
  10. Cleaning Shifts(POJ 2376 贪心)
  11. Delphi语言最好的JSON代码库 mORMot学习笔记1
  12. [置顶] 64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法
  13. 超越Web,Javascript在物联网的应用
  14. .net整理
  15. 自动保存python一个项目的需求文件
  16. 《JQuery技术内幕》读书笔记——自调用匿名函数剖析
  17. 如何让gitbook与github仓库关联
  18. 2017年前小纪(有关http的一些缓存理论知识)
  19. luogu 1550 [Usaco2008 Oct]打井 最小生成树+小技巧
  20. 今天这篇内容分享Apache由http自动跳转到https的多种方法

热门文章

  1. hihoCoder #1127 : 二分图二&#183;二分图最小点覆盖和最大独立集
  2. NYOJ_77 开灯问题
  3. 分别改动Cube每一个面的贴图UV(Unity3D开发之十八)
  4. [Python] Array Attributes of Numpy lib
  5. PHP开发环境&amp;amp;MySQL下载安装及配置流程
  6. FSM的几种策略
  7. EF数据迁移命令
  8. org.w3c.dom.Document 与org.dom4j.Document互转
  9. Android针对不同的手机屏幕大小设计图片资源与编码
  10. vue-cli &#183; Failed to download repo vuejs-templates/webpack-simple: tunneling socket could not be established, cause=connect ECONNREFUSED 127.0.0.1:8086 &amp;&amp; vue init webpack-simple xxx