Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)

public class ShowServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");

out.println("<a href=‘"+request.getContextPath()+"/jsps/show.jsp"+"‘>返回</a>");
out.println("<hr/>");
String img = request.getParameter("img");//1.jpg
String html = "<img src=‘"+request.getContextPath()+"/imgs/"+img+"‘/>";
out.println(html);

//显示最近浏览的图片

//把浏览信息记录在cookie("images",imgs)中
//imgs = "1.jpg,2.jpg,3.jpg";
Cookie cs[] = request.getCookies();
boolean boo = false;
if(cs!=null){
for(Cookie c:cs){
if(c.getName().equals("images")){
String imgs = c.getValue();//以前浏览的
//如果记录中已经存在该当前图片信息(之前浏览的)清除
if(imgs.indexOf(img)>=0){
imgs = imgs.replace(img, "");
if(imgs.indexOf(",")==0){//开始处有一个多余“,”号的情况
imgs = imgs.substring(1);
}else if(imgs.lastIndexOf(",")==imgs.length()-1){//最后处存在一个多余“,”号的情况
imgs = imgs.substring(0,imgs.length()-1);
}else{//中间处有一个多余“,”号的情况
imgs = imgs.replaceAll(",,", ",");
}
}

imgs = img+","+imgs;//更新浏览记录。把这次浏览的图片加到最前面

//控制只保存最近浏览的3个
if(imgs.split(",").length>3){
imgs = imgs.substring(0, imgs.lastIndexOf(","));
}

//把更新后的记录保存到c中
c.setValue(imgs);
c.setMaxAge(60*60*24*30);//30天
c.setPath("/");

response.addCookie(c);
boo = true;
break;
}
}
}
if(boo==false){//不存在图片记录的cookie,这是第一次访问,new一个cookie
Cookie c = new Cookie("images",img);
c.setMaxAge(60*60*24*30);//30天
c.setPath("/");
response.addCookie(c);
}

out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

}

----------------------------------------------------------------------------------------------------------------------------------

<a href="jsps/show.jsp">利用cookie技术实现显示用户最近浏览的图片</a>

----------------------------------------------------------------------------------------------------------------------------------

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>图片浏览</title>
</head>

<body>
<h2>图片浏览</h2>
<p>浏览过的图片</p>
<!-- 把ShowServlet记录到cookie中的浏览记录读取出来,并显示相应的图片 -->
<%
//jsp1: html+java
//jsp2: html+jstl+EL
String str=null;
Cookie cs[] = request.getCookies();
if(cs!=null){
for(Cookie c:cs ){
if(c.getName().equals("images")){
str = c.getValue();
break;
}
}
}
if(str!=null){
String strs[] = str.split(",");
for(String s:strs){//s=1.jpg
%>
<img width=50 height=50 src="<%=request.getContextPath()%>/imgs/<%=s%>"/>
<%
}

}
%>

<hr/>
<a href="<%=request.getContextPath()%>/ShowServlet?img=1.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/1.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=2.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/2.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=3.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/3.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=4.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/4.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=5.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/5.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=6.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/6.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=7.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/7.jpg"/>
</a>
<a href="<%=request.getContextPath()%>/ShowServlet?img=8.jpg">
<img width=100 height=100 src="<%=request.getContextPath()%>/imgs/8.jpg"/>
</a>

</body>
</html>

-------------------------------------------------------------------------------------------------------------------------------------------

------

<!--
cookie权限(相同路径可以读取。子路径的servlet可以读上级路径的cookie,反之不行!):
※说明: cookie的path(路径): 通过 coo.setPath()来设置的
servlet的路径: 在web.xml中用<url-pattern>来配置

1)可以读取---相同路径
cookie设置的path= reqeust.getContextPath() ---等价于“/”
读取cookie的servlet的路径: /

2)下面的也可以读---子路径的servlet 可以读 上级路径的cookie
cookie设置的path= reqeust.getContextPath() ---等价于“/”
读取cookie的servlet的路径: /servlet

3)下面的不可以读
cookie设置的path= reqeust.getContextPath()/servlet ---等价于“/servlet”
读取cookie的servlet的路径: /

-->

----------------------------------------------------------------------------------------------------------------------------

时间: 2024-08-08 10:44:39

Cookie中图片的浏览记录与cookie读取servle时路径的设置(文字描述)的相关文章

js操作Cookie,实现历史浏览记录

/** * history_teacher.jsp中的js,最近浏览名师 * @version: 1.0 * @author: mingming */ $(function(){ getHistory(); }); var historyCount=4; //保存历史记录个数 /** * 增加浏览历史记录 * @param id 编号 * @param name 姓名 * @param photo 照片 * @param grade 年级 * @param subject 科目 * @retur

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

之前在前面一篇文章中简单的介绍了一下Cookie的来历与简单的用法,以及与Session两者之间的区别,然而理论终究还是要与实践相结合的,有了实践,理论才能得以更好的巩固.尤其是编程这种技术性操作性及其强的工作,更需要不断的去实践. 像很多购物网站.淘宝,京东等购物网站,细心的朋友都会发现页面的一侧都会有那种浏览过的商品历史记录信息,之前也只是听说这个是使用cookie机制实现的,但是具体怎么实现的还不是很清楚,通过这两天的学习,终于也大致清楚这其中的奥秘,好了,废话不多说了,这两天练习了一个小

destoon系统开发-最新利用浏览器的cookie 做历史浏览记录

  注意: 代码 放在要显示的为 (一般放在详情页),注意本教程不入库,直接利用浏览器的 cookie 缓存判断    <!--历史浏览记录 S--> <div class="column_box mt_10"> <div class="column_title">历史浏览记录</div> <div class="box_body_new"> <?php $MOD_name = &

cookie中的domain和path

div.example { background-color: #e5ecf3; color: #000; padding: 0.5em; margin: 1em 2em 1em 1em } div.warning { border: 1px solid #f00 } 1.cookie中的domain代表的是cookie所在的域,默认情况下就是请求的域名,例如请求http://www.server1.com/files/hello, 那么响应中的set-Cookie默认会使用www.server

从cookie中取值$.cookie()

从cookie中取值: var userid = $.cookie("remoteuserid");例子: function delUser() { var table = $('#grid-user-list'); var chkBoxes = table.find('input.invechk:checked'); if (chkBoxes.length == 0) { showMsgPane('请选择需要删除的用户.', 'prompt'); return false; } va

自定义token,保存到客户端的cookie中,

自定义token #原理自定义token,放入cookie中,不用存数据库 #token定义方式 >>>>> "加密字符串"|登陆用户id|用户登陆时间 #加密字符串由登陆用户id,登陆时间和盐通过md5加密完成 import hashlib def get_token(user_id,current_time): md5= hashlib.md5() md5.update("宝塔镇河妖".encode("utf-8"

Java遇见HTML——JSP篇之商品浏览记录的实现

一.项目总体介绍 使用Cookie实现商品浏览记录. 要实现这个程序采取的是Model1(Jsp+JavaBean)架构实现,具体步骤: 首先要有个数据库,商品表,操作数据库的一个类DBHelper类 创建实体类(与数据库表一一对应) 创建业务逻辑类(DAO) 创建页面层 二.DBHelper类设计 1 package util; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 6 public class D

jsp写商品显示信息和cookie浏览记录,网上看到的好东西,记录一下。

这是本次项目结果,商品展示页面和浏览历史记录页面. 1,先从数据库入手:创建商品数据库. CREATE TABLE `items` (   `id` int(11) NOT NULL auto_increment,   `name` varchar(50) default NULL,   `city` varchar(50) default NULL,   `price` int(11) default NULL,   `number` int(11) default NULL,   `pict

Cookie小案例-----记住浏览过的商品记录

Cookie小案例------记住浏览过的商品记录 我们知道,这个功能在电商项目中很常见.这里处理请求和页面显示都是由servlet实现,主要是为了体现cookie的作用, 实现功能如下: 1,点击购买的商品后,显示到另一页面 2,记住用户浏览过的商品,并在页面时中显示 3,当浏览过的数量超过最大值限度时,最下面一个商品被挤下去 4,当浏览过的商品本身就在浏览记录中,显示列表将其从中间移到最上面 显示一打开网站的样子和显示用户的浏览记录: package cn.itcast.cookie; im