用cookie保存浏览记录

cookie 实现显示商品的浏览的历史记录 cookie实现显示商品的浏览记录 例子没有从数据库里获取数据,,用一个类模拟了数据,可以运行, 立即下载

【转】用cookie保存浏览记录

Posted on 2008-09-28 11:18 独孤雁 阅读(399) 评论(1)   编辑 收藏 网摘 所属分类: 工作学习

 

方法一:

当页面初始化时需要判断是否存在

         protected   void  Page_Load( object  sender, EventArgs e)
        
{
                
if (Request.Cookies["username"] == null)
                
{
                    HttpCookie myCookie 
= new HttpCookie("username");
                    myCookie.Values.Add(
"prodid", "");
                    myCookie.Expires 
= DateTime.Now.AddDays(1);
                    Response.Cookies.Add(myCookie);
                }

        }
 

这是插入cookie的代码

  public   void  addcookie( string  cookievalue)
        
{
            
            HttpCookie cookie 
= new HttpCookie("username");
            
if (Request.Cookies["username"].Values["prodid"] != "")
            
{
                
string myvalue = "";
                myvalue 
= Request.Cookies["username"].Values["prodid"].ToString();
                myvalue 
= cookievalue + "," + myvalue;
                cookie.Values.Add(
"prodid", myvalue);
                cookie.Expires 
= DateTime.Now.AddDays(1);
                Response.Cookies.Add(cookie);
            }

            
else
            
{
                cookie.Values.Add(
"prodid", cookievalue);
                cookie.Expires 
= DateTime.Now.AddDays(1);
                Response.Cookies.Add(cookie);
            }

        }

读取cookie代码,只读取最后三条记录

         public   void  playcookie()
        
{
            
int num = 0;
            
string myvalue = "";
            myvalue 
= Request.Cookies["username"].Values["prodid"].ToString();
            
string resultvalue=string.Empty;
            
if (myvalue != "")
            
{
                Char[] spitchar 
= new Char[] { Convert.ToChar(",") };
                
string[] cookievalue;
                cookievalue 
= myvalue.Split(spitchar);
                
if (cookievalue.Length <= 3)
                
{
                    num 
= cookievalue.Length;
                }

                
else
                
{
                    num 
= 3;
                }

                
for (int i = 0; i < num; i++)
                
{
                    resultvalue 
+= cookievalue[i].ToString();
                }

                Label1.Text 
= resultvalue;
            }

        }

最后是删除cookie的方法

         protected   void  Button2_Click( object  sender, EventArgs e)
        
{
            HttpCookie myCookie 
= new HttpCookie("username");
            myCookie.Expires 
= DateTime.Now.AddDays(-1d);
            Response.Cookies.Add(myCookie);
        }

方法二:

JS+Cookies记录浏览记录
2008/03/12 16:25
<html>
<body>

<script>
//cookie的相关函数
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
      
function getCookie (name) {
         var arg = name + "=";
         var alen = arg.length;
         var clen = document.cookie.length;
         var i = 0;
         while (i < clen) {
             var j = i + alen;
             if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
             i = document.cookie.indexOf(" ", i) + 1;
             if (i == 0) break;
         }
      return null;
}
function setCookie (name, value) {
       var exp = new Date();
       exp.setTime (exp.getTime()+3600000000);
       document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}
////////////////////////////////////
function glog(evt)
{

evt=evt?evt:window.event;var srcElem=(evt.target)?evt.target:evt.srcElement;
try
{
while(srcElem.parentNode&&srcElem!=srcElem.parentNode)
{
if(srcElem.tagName&&srcElem.tagName.toUpperCase()=="A")
{
linkname=srcElem.innerHTML;
address=srcElem.href+"_www.achome.cn_";
wlink=linkname+"+"+address;
old_info=getCookie("history_info");
var insert=true;
////////////////////////
if(old_info==null)          //判断cookie是否为空
{
insert=true;
}
else
{
var old_link=old_info.split("_www.achome.cn_");
for(var j=0;j<=5;j++)
{
if(old_link[j].indexOf(linkname)!=-1)
insert=false;
if(old_link[j]=="null")
break;
}
}
/////////////////////////////
if(insert)                //如果符合条件则重新写入数据
{
wlink+=getCookie("history_info");
setCookie("history_info",wlink);
history_show().reload();
break;
}
}
srcElem = srcElem.parentNode;
}
}
catch(e){}
return true;
}
document.onclick=glog;
////////////////////////////////////////////////////////////////////////////////
function history_show()
{   
var history_info=getCookie("history_info");
var content="";
if(history_info!=null)
{
history_arg=history_info.split("_www.achome.cn_");
var i;
for(i=0;i<=5;i++)
{
   if(history_arg[i]!="null")
   {
    var wlink=history_arg[i].split("+");
    content+=("<font color='#ff000'>↑</font>"+"<a href='"+wlink[1]+"' target='_blank'>"+wlink[0]+"</a><br>");
    }
    document.getElementById("history").innerHTML=content;
    }
}
else
{document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";}
}
// JavaScript Document
</script>
<div>浏览历史排行(只显示6个最近访问站点并且没有重复的站点出现)</div>
<div id="history">
<script>
history_show();
</script>
</div>
<div>
<br>
<br>
点击链接:
<a href="#">网站1</a>
<a href="#">网站2</a>
<a href="#">网站3</a>
<a href="#">网站4</a>
<a href="#">网站5</a>
<a href="#">网站6</a>
<a href="#">网站7</a>
<a href="#">网站8</a>
<a href="#">网站9</a>
</div>
<div>如果有其他疑问请登陆<a href=" http://www.achome.cn">www.achome.cn</a>与我联系</div>
</body>
</html>



方法三:

由于以前对javascript了解不够深入,一时间手足无措。
后来经过两位高手同事的指点(对这两位同事的敬仰犹如滔滔江水连绵不绝...),恍然大悟,豁然开朗
成功地完成了此功能的添加。
首先来介绍一下javascript中关于此功能的一些对象和方法:
1. window.event对象:
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
2. event.srcElement:
表示该事件的发生源 通俗一点说也就是该事件被触发的地方
3. srcElement.parentNode:
表示该事件发生源的父结点
4. srcElement.tagName:
表示事件发生源的标签名
5. toUpperCase():
大写化相应字符串的方法
基本上就是这些属性和方法,可能对于刚刚接触javascript的朋友们或者以前很少使用此类功能的朋友来说,这些对象有些陌生,不过没关系,了解以后发现其实并不难,和javascript验证表单之类的并没有太多的不同。
下面就结合程序给大家一步一步讲解(程序难免有不合理之处,希望大家多多指正,共同进步):
第一部分:javascript纪录浏览动作。
[复制此代码]CODE:
function glog(evt) //定义纪录鼠标点击动作的函数
{
evt=evt?evt:window.event;var srcElem=(evt.target)?evt.target:evt.srcElement;
try
{
while(srcElem.parentNode&&srcElem!=srcElem.parentNode)
//以上这个语句判断鼠标动作是否发生在有效区域,防止用户的无效点击也被纪录下来
{
if(srcElem.tagName&&srcElem.tagName.toUpperCase()=="A")//判断用户点击的对象是否属于链接
{
linkname=srcElem.innerHTML; //取出事件发生源的名称,也就是<a>和<a/>之间的文字,也就是链接名称哈
address=srcElem.href+"_www.achome.cn_"; //取出事件发生源的href值,也就是该链接的地址
wlink=linkname+"+"+address; //将链接名称和链接地址整合到一个变量当中
old_info=getCookie("history_info"); //从Cookies中取出以前纪录的浏览历史,该函数后面有声明
//以下程序开始判断新的浏览动作是否和已有的前6个历史重复,如果不重复则写入cookies
var insert=true;
if(old_info==null) //判断cookie是否为空
{
insert=true;
}
else
{
var old_link=old_info.split("_www.achome.cn_");
for(var j=0;j<=5;j++)
{
if(old_link[j].indexOf(linkname)!=-1)
insert=false;
if(old_link[j]=="null")
break;
}
}
if(insert)
{
wlink+=getCookie("history_info");
setCookie("history_info",wlink); //写入cookie,该函数后面有声明
history_show().reload();
break;
}
}

查看效果
srcElem = srcElem.parentNode;
}
}
catch(e){}
return true;
}
document.onclick=glog;//使每一次页面的点击动作都执行glog函数

第2部分:Cookies的相关函数。
[复制此代码]CODE:
//cookie的相关函数
//读取cookie中指定的内容
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function getCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
//将浏览动作写入cookie
function setCookie (name, value) {
var exp = new Date();
exp.setTime (exp.getTime()+3600000000);
document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}

第3部分:页面显示函数。
[复制此代码]CODE:
function history_show()
{
var history_info=getCookie("history_info"); //取出cookie中的历史记录
var content=""; //定义一个显示变量
if(history_info!=null)
{
history_arg=history_info.split("_www.achome.cn_");
var i;
for(i=0;i<=5;i++)
{
if(history_arg[i]!="null")
{
var wlink=history_arg[i].split("+");
content+=("<font color='#ff000'>↑</font>"+"<a href='"+wlink[1]+"' target='_blank'>"+wlink[0]+"</a><br>");
}
document.getElementById("history").innerHTML=content;
}
}
else
{document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";}
}

<html>
<body>
  
<script>
//cookie的相关函数
function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
            
function getCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
   return null;
}
function setCookie (name, value) {
var exp = new Date();
exp.setTime (exp.getTime()+3600000000);
document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}
////////////////////////////////////
  function glog(evt)
{
  
evt=evt?evt:window.event;var srcElem=(evt.target)?evt.target:evt.srcElement;
try
{
while(srcElem.parentNode&&srcElem!=srcElem.parentNode)
{
if(srcElem.tagName&&srcElem.tagName.toUpperCase()=="A")
{
linkname=srcElem.innerHTML;
address=srcElem.href+"_www.achome.cn_";
wlink=linkname+"+"+address;  
old_info=getCookie("history_info");
var insert=true;  
////////////////////////
if(old_info==null) //判断cookie是否为空
{
  insert=true;
}
else
{  
var old_link=old_info.split("_www.achome.cn_");
for(var j=0;j<=5;j++)
{
  if(old_link[j].indexOf(linkname)!=-1)
  insert=false;
  if(old_link[j]=="null")
  break;
  }
  }
/////////////////////////////
if(insert) //如果符合条件则重新写入数据
{
wlink+=getCookie("history_info");
setCookie("history_info",wlink);
history_show().reload();
break;
}
}
srcElem = srcElem.parentNode;
}
}
catch(e){}
return true;
}
document.onclick=glog;
////////////////////////////////////////////////////////////////////////////////
function history_show()
{      
  var history_info=getCookie("history_info");
  var content="";  
  if(history_info!=null)
  {
  history_arg=history_info.split("_www.achome.cn_");
  var i;
  for(i=0;i<=5;i++)
  {
    if(history_arg[i]!="null")
    {
     var wlink=history_arg[i].split("+");
      content+=("<font color='#ff000'>↑</font>"+"<a href='"+wlink[1]+"' target='_blank'>"+wlink[0]+"</a>
");
      }
      document.getElementById("history").innerHTML=content;
      }
}
else
  {document.getElementById("history").innerHTML="对不起,您没有任何浏览纪录";}
}
// JavaScript Document
</script>
<div>浏览历史排行(只显示6个最近访问站点并且没有重复的站点出现)</div>
<div id="history">
<script>
history_show();
</script>
</div>
<div>

 

 
点击链接:
<a href="#">网站1</a>
<a href="#">网站2</a>
<a href="#">网站3</a>
<a href="#">网站4</a>
<a href="#">网站5</a>
<a href="#">网站6</a>
<a href="#">网站7</a>
<a href="#">网站8</a>
<a href="#">网站9</a>
</div>
<div>如果有其他疑问请登陆<a href=http://www.jb51.net>脚本之家</a>与我联系</div>
</body>
</html>

cookie实现商品浏览记录 使用cookie实现的一个商品浏览记录demo 对应的博客地址:https://blog.youkuaiyun.com/qq_36631076/article/details/79955880 立即下载

相关推荐

使用Cookie实现商品的浏览记录功能

使用cookie机制实现商品的浏览历史记录功能 主要的实现思路就是通过每次点击商品查看信息的时候 传递一个商品编号 然后保存在cookie中 然后从cookie中取出来 去数据库执行相关的查询操作 之后再到页面上进行显示就ok了 ">使用cookie机制实现商品的浏览历史记录功能 主要的实现思路就是通过每次点击商品查看信息的时候 传递一个商品编号 然后保存在cookie中 然后从cookie中取出来 去数据库执行相关的查询操作 之后再到页面上进行显示就ok [更多]

使用cookie技术实现历史浏览记录并控制显示的个数

使用cookie技术实现历史浏览记录, 并且只显示3个历史浏览记录,每次访问的记录都放到最前main。 需要了解cookie的知识点: cookie保存在客户端; 服务端创建好cookie (Cookie cookie = new Cookie(String cookieName,String cookieValue), 使用response.add(Cookie)返回给客户端;下一次访问的时候浏...

KevinLoveJava 874

【运筹优化】VRPTW建模实战:Python+Gurobi求解带时间窗的车辆路径规划

本文详细介绍了如何使用Python和Gurobi求解带时间窗的车辆路径问题(VRPTW)。通过将物流调度难题抽象为混合整数规划模型,并逐步讲解建模、编码与求解过程,为读者提供了从理论到实践的完整指南,帮助解决物流配送中的路径优化挑战。

peace的博客 201

使用cookie保存用户的浏览记录

我们在写关于用户对商品额的浏览记录的时候一般使用cookie进行记录,cookie一般保存字符串比较常用,如果想保存对象可以使用序列化,这里不做过多的解释,我们现在只做简单的cookie应用,cookie中保存字符串。 我们将商品的照片路径(字符串)保存在cookie中从而实现对用户的浏览信息进行记录。每个商品都有自己的id,每个用户也有自己的id,当我们对某一个用户的浏览信息进行记录的时候,我

qq_32998153的博客 3981

避坑指南:MTK平台Widevine L1密钥安装全流程详解(含SP META工具使用与Log分析)

本文详细解析了MTK平台实现Widevine L1认证的全流程,涵盖密钥申请、格式转换、安全烧录等关键步骤,特别针对Trustonic TEE环境下的SP META工具使用与日志分析提供实用指南。帮助开发者规避常见错误,确保DRM密钥安全部署,满足高端内容保护需求。

weixin_27219587的博客 476

MATLAB 设置legend加标题

x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')%水平 legend添加标题 lgd = legend; lgd.Fon

早起CaiCai的学习空间 4714

使用cookie实现历史记录功能

1.为什么要实现历史记录功能 我们在访问淘宝,京东等购物网站的时候,系统会自动给我们保存刚才浏览过的商品信息。简单的说,你想要购买一件商品,你在搜索栏输入想要的商品名称,系统会显示所有包含商品名称的商品,此时你点开第一件商品,发现不太满意,又往下浏览,浏览到最后却发现还是第一次看的商品最好,但是如果没有历史记录的话,你就很难找到那件商品,有了历史记录以后,你就可以查找历史纪录中最早访问的商品了,从...

MarcoAsensio的博客 3415

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1115

Cookie案例:显示商品浏览记录

设计一个简单的商品列表页面(product_list.jsp),提供几件商品,当点击某商品时,跳转到(ProductServlet)执行相关逻辑,再重定向跳转到商品信息页面(ProductInfo.html),点击商品信息页面的返回按钮,跳转回商品列表页面(product_list.jsp),显示刚才浏览的商品。扩展:点击商品列表页面的清除浏览记录可删除浏览记录。 代完善:显示的浏览记录是商品id...

成长,编程,生活 1019

C#图表开发避坑指南:Chart控件的Series和Points属性详解

本文深入解析C#图表开发中Chart控件的Series和Points核心属性,提供避坑指南。详细阐述了Series的数据序列管理、Points的高效操作与空值处理,以及多Series与ChartArea的协同配置,帮助开发者避免常见错误,实现稳定、高性能的数据可视化应用。

weixin_29313239的博客 365

案例:Cookie商品浏览记录

需求分析: ProductInfoServlet代码: //获取到当前用户准备浏览的商品id String id = request.getParameter("id"); Cookie[] cookies = request.getCookies(); Cookie cookie = CookieUtil.fildCookie(cookies, "history"); //...

HYN205的博客 406

QML实现ListView的拖动排序

现有一种需求,就是用鼠标拖动某项,动态去改变某一项在ListView中显示的顺序位置,经过研究及实践实战,实现方式的核心代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Window 2.2 import QtQuick.Dialogs 1.2 Rectangle { width: 800 ...

草上爬的博客 7564

使用Cookie实现保存商品浏览记录

使用Cookie实现保存商品浏览记录 1.确定好框架 我新建了三个类。DBHelper.java来连接数据库,Items.java来封装数据,ItemsDAO.java来提供对Items的方法。 在页面显示上,我新建了俩个jsp。index.jsp来负责提供商品展示,detail.jsp来负责显示商品的细节(也就是模拟网上购物的情形,然后再detail.jsp上会显示你的浏览记录) 主要内

sunnylinner的博客 4123

【网络安全 | 渗透工具】Hydra安装使用详细教程

Hydra,也称九头蛇,是一款非常强大的暴力破解工具(密码能否被破解关键在于字典是否足够强大),支持多种服务协议的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。该工具支持以下协议的爆破:Hydra在kali中自带,这里介绍windows下的安装方法。zip下载地址:https://gitcode.com/maaaaz/thc-hydra-windows/tree/master下载完成后解压: 再将thc-hydra-windows-mast

等风来 9201

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

用js操作cookie保存浏览记录

说明:最近做了一个功能,记录用户浏览过的产品页面。我的思路是,客户每次进入产品页面,就自己调用JS把产品信息以json的形式保存到cookie里面。浏览记录的显示是从cookie里读出来,然后解析成j

dearbaba_8520的博客 578

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用Cookie保存商品浏览记录

数据流程:页面上是商品列表,点击<a href="productServlet">商品名</a> ==》跳转到自定义的servlet中进行处理,先得到请求的参数id; ==》获取所有cookies =requst.getCookies()方法。 ==》根据名称查找cookie是否存在 。通过循环cookies for(Cookie c:cookies) if(c.g...

weixin_30608131的博客 170

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jquery+cookie+json保存浏览商品的记录

$(document).ready(function(){      var p_url = document.URL;      var p_id=$('#product_id').attr('value');      var p_img=$('#pro_img').attr('src');      var p_name=$('#pro_img').attr('alt');

梦幻 PHP -》Dream 5026

Cookie:类似于一个容器,可以将用户的数据记录在cookie中。cookie文件保存在浏览器之中,一般情况下每个cookie文件大小在1kb左右。

20191021 今天学习了cookie,总结一下cookie的内容如下: Cookie:类似于一个容器,可以将用户的数据记录在cookie中。cookie文件保存在浏览器之中,一般情况下每个cookie文件大小在1kb左右。同时一个javaweb项目最多向浏览器发送20个左右的cookie。 a)创建cookie并且发送cookie文件到浏览器 b)获取浏览器中保存的Cookie文件 sho...

Jenny_xuexi的博客 700

Cookie:类似与保存用户浏览记录的例子

用户选择商品,然后服务器记录用户的选择,并返回给页面.import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpSe

我要做的就是比昨天的我更强 1773
上一篇: 支付宝接口
下一篇: 何动态生成GridView的模版列
simoGAO
博客等级 码龄19年 3粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值