IE禁用Cookie后的session处理
IE禁用Cookie后解决方案:URL重写
购物车案例《IE禁用Cookie后》
购物界面ShowBook.servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter(); //先死后活
out.println("<h1>欢迎购买</h1>"); out.println("oracle书<a href='/myCart/BuyBookCl?id=3&name=oracle' >点击购买</a></br>"); //取出Db
ArrayList<Book> mydb=Db.getDb(); //访问一些session
request.getSession(); for(Book book:mydb){
String url=response.encodeURL("/myCart/BuyBookCl?id="+book.getId()); //我们希望href ="/myCart/BuyBookCl?id=1&"
out.println(book.getName()+"----"+book.getPrice()+"<a href='"+url+"' >点击购买</a></br>");
} }
BuyBookCl.servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
@SuppressWarnings("unused")
PrintWriter out = response.getWriter();
//request.getAttribute(name)接受的servlet与本身(request里面放置的属性) //浏览器发过来的(http协议相关的) String id=request.getParameter("id");
Book bookinfo=Db.getBookById(id);
HttpSession session=request.getSession(); HashMap<String,Book> hm=(HashMap<String,Book>)session.getAttribute("myBooks");
//如果第一次购物al=null
if(hm==null){
hm=new LinkedHashMap<String,Book>();
Book book=new Book();
book.setId(id);
book.setName(bookinfo.getName());
book.setNum(1);
hm.put(id,book);
//al放到session中
session.setAttribute("myBooks", hm);
}else{
//判断hm中是否有该书
if(hm.containsKey(id)){
//表示购买过一次
//取出
Book book=hm.get(id);
int bookNum=book.getNum();
book.setNum(bookNum+1);
}else{
Book book=new Book();
book.setId(id);
book.setName(bookinfo.getName());
book.setNum(1);
hm.put(id,book);
}
//更新
session.setAttribute("myBooks", hm);
}
//跳转到购物车
request.getRequestDispatcher("/ShowMyCart").forward(request, response);
}
ShowMyCart.servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter(); HashMap<String,Book> myBooks=(HashMap<String,Book>)request.getSession().getAttribute("myBooks"); out.println("你的购物车有以下书籍:</br>");
//out.println(myBooks); //遍历hashMap
Iterator iterator=myBooks.keySet().iterator(); while(iterator.hasNext()){ String key=(String)iterator.next(); Book book=myBooks.get(key);
out.println(book.getName()+"----"+book.getNum()+"</br>");
} out.println("购物车的总价是"); //这里我们也需要地址重写
String url=response.encodeURL("/myCart/ShowBook"); out.println("<a href='"+url+"'>返回购物大厅</a>");
}
IE禁用Cookie后的session处理的更多相关文章
- 浏览器禁用Cookie后的Session处理
1. 实现购物车, 可以基于Cookie, 也可以基于Session, 若服务器性能较差, 可以考虑基于Cookie实现购物车 2. 解决方案: URL重写 把用户可能点的每一个超链接后面,都跟上用户 ...
- Asp.Net 禁用cookie后使用session
原文地址:http://www.c-sharpcorner.com/UploadFile/deepak.sharma00/using-cookie-less-session-in-Asp-Net/ H ...
- php 会话控制(禁用cookie后session为什么会失效?)
首先说明一点:session不一定必须依赖cookie,只是php默认客户端sessionid基于cookie方式保存. 到此,我想你也应该了解了php默认的session客户端保存方式是基于cook ...
- 浏览器禁用cookie后php如何保持session会话-use_trans_sid机制
原文:浏览器禁用cookie后php如何保持session会话-use_trans_sid机制 为防止浏览器禁用cookie导致服务器会话无法保持,php开发了一个机制,该机制开启后,浏览器发起请求后 ...
- 关于PHP中浏览器禁止Cookie后,Session能使用吗?
sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...
- php在客户端禁用cookie时让session不失效的解决方法
cookie固然好,不过有些客户端浏览器会禁用cookie,这就会导致你所依赖cookies的程序会失效或出错,那么若真出现用户关闭cookies的情况,PHP应该如何再次使用session?方法还是 ...
- 禁止COOKIE后对SESSION的影响
一.理解SESSION机制 简单来说:每一个SESSION都有一个唯一的session_id , 默认情况下,session_id存储在客户端(默认COOKIE['PHPSESSID']), 在使用S ...
- 禁用cookie后
服务器为某个访问者创建一个内存区域,这个就是所谓的session,这个区域的存在是有时间限制的,比如30分钟,这块区域诞生的时候,服务器会给这个区域分配一个钥匙,只有使用这个钥匙才能访问这个区域,这个 ...
- PHP--浏览器禁用cookie后,怎么使用session
sessionid是存储在cookie中的,解决方案如下: Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Session session机制.session机制是一种 ...
随机推荐
- 写出3种遍历一个list的方法,(使用for循环)
for(String s : list){ System.out.print(s+"/t"); } for(int i = 0;i<list.size();i++){ Sys ...
- 【bzoj2120】 数颜色
http://www.lydsy.com/JudgeOnline/problem.php?id=2120 (题目链接) 题意 给出一个n个数,m个询问,每次询问一个区间或修改一个数,求区间内不同的数有 ...
- CloudStack4.4安装 ubuntu14.04
CloudStack 项目的活跃程度仅次于 OpenStack. 和大多数云计算.集群软件一样,CloudStack 也是控制节点+计算节点这种架构,控制节点(cloudstack-managemen ...
- poj2187 旋转卡(qia)壳(ke)
题意:求凸包的直径 关于对踵点对.旋转卡壳算法的介绍可以参考这里: http://www.cnblogs.com/Booble/archive/2011/04/03/2004865.html http ...
- Bzoj1189 [HNOI2007]紧急疏散evacuate
1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2293 Solved: 715 Descr ...
- 洛谷P1889 士兵站队
题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网格边上.下左右移动一步,但在同时刻任一网格点上只能有名士兵.按照军官的命令,们要整齐地列 ...
- 巧妙的重载魔术方法__call()
工作半年了,感觉这半年学到的东西比大学四年学到的还要多,主要原因是心静下来了,目标也明确了,不会去整天的和游戏纠缠在一起了.大学时候其实也意识到了玩游戏会影响自己的正常学习和工作的,但是一直控制不了自 ...
- AngularJs $location 和 $window
$location $location服务解析浏览器地址中的url(基于window.location)并且使url在应用程序中可用.将地址栏中的网址的变化反映到$location服务和$locati ...
- ACM程序对拍
有时候在OJ刷题目的时候,总是会遇到不知名bug,题目总不能AC,自己测试的一些数据又都能得出正确的结果,又或是直接暴力会TLE,改了算法,但是仍然WA,这时候进行程序对拍测试数据不失为一个好办法.程 ...
- ApkTool反编译apk,去除广告或者汉化后重新打包apk,并签名
http://my.oschina.net/mopidick/blog/135581 以ubuntu的环境为例子,window的大同小异 首先下载apktool工具:https://code.goog ...