【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能
Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据。
设置Cookie
//设置cookie
Cookie cookie = new Cookie("TOM","111");
//设置有效期,默认秒为单位
cookie. setMaxAge(7*24*60*60);
//添加cookie到客户端
response.addCookie(cookie);
获取Cookie
<%
//获取cookie
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length>0) {
for(int i=0; i<cookies.length;i++) {
out.print(cookies[i].getName() +"————"+ cookies[i].getValue() + "<br/>");
}
}
%>
Cookie的中文支持
Cookie不支持中文的显示,必要的时候,需要进行转码和解码。
转码
strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8");
解码
out.print(java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>");
动态删除Table当前行
<script language="javascript">
function deletegoods(obj) {
var rowIndex = obj.parentNode.parentNode.rowIndex;
var table = document.getElementById("table");
table.deleteRow(rowIndex);
}
</script>
Cookie实现购物车功能
以数组模拟选择过程,并把所有的选择项放入Arraylist中。
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script language="javascript">
function deletegoods(obj) {
var rowIndex = obj.parentNode.parentNode.rowIndex;
var table = document.getElementById("table");
table.deleteRow(rowIndex);
}
</script>
</head>
<body>
<p>
<%
//设置cookie
ArrayList<String[]> list = new ArrayList<String[]>();
list.add(new String[]{"1001","img/1.jpg","经典基本款低帮帆布女鞋2.0 粉绿色","#","39","¥69.00","1"});
list.add(new String[]{"1002","img/2.jpg","基础罗纹Y字吊带背心 奶蓝色","#","m","¥9.00","1"});
int times = 1*24*60*60;
for(int i=1;i<=list.size();i++){
String[] strings = new String[list.get(i-1).length];
for(int j=0;j<list.get(i-1).length;j++){
strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8");
}
Cookie cookie = new Cookie("item_id_"+i,strings[0]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_img_"+i,strings[1]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_title_"+i,strings[2]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_URL_"+i,strings[3]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_size_"+i,strings[4]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_price_"+i,strings[5]);
cookie.setMaxAge(times);
response.addCookie(cookie);
cookie = new Cookie("item_number_"+i,strings[6]);
cookie.setMaxAge(times);
response.addCookie(cookie);
}
%>
<%
//获取cookie
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length>0) {
for(int i=0; i<cookies.length;i++) {
out.print(cookies[i].getName() +"————"+ java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>");
}
}
if(cookies!=null && cookies.length>5){
ArrayList<String[]> goodslist = new ArrayList<String[]>();
int i=1;
for(int j=0;j<cookies.length/7;j++){
String[] strings = new String[7];
for(int k=0;k<strings.length;k++){
strings[k]=java.net.URLDecoder.decode(cookies[i++].getValue(),"UTF-8");
}
goodslist.add(strings);
}
pageContext.setAttribute("goodslist", goodslist);
} // pageContext.setAttribute("length", cookies.length);
%> </p>
<form name="form1" method="post" action="">
<table width="700" border="0" id="table">
<tr>
<td>ID/图片/商品名</td>
<td>SIZE</td>
<td>单价</td>
<td>数量</td>
<td> </td>
</tr>
<c:forEach items="${goodslist}" var="goods">
<tr id="${goods[0]}">
<td>${goods[0]}<img src="${goods[1]}" border="0"/></a><a target="_blank"
title="${goods[2]}" href="${goods[3]}">${goods[2]}</a></td>
<td>${goods[4]}</td>
<td>${goods[5]}</td>
<td>${goods[6]}</td>
<td><a href="#">收藏</a> <a href="#" onclick="deletegoods(this)">删除</a></td>
</tr>
</c:forEach>
</table>
</form>
<p> </p>
</body>
</html>
购物车实现结果
上面部分是获取的Cookie。
下面的部分是将Cookie通过布局,放入购物车页面。
点击删除,将会动态删除当前行。
【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能的更多相关文章
- js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法
//是否存在指定函数 function isExitsFunction(funcName) { try { if (typeof(eval(funcName)) == " ...
- Cookie保存中文用户名报错(500)
在用Cookie保存用户名时候,当用户名是中文的时候服务器报错了. HTTP Status 500 - An exception occurred processing JSP page /dolog ...
- Unicode编码:保存中文cookie
中文和英文字符不同,中文属于Unicod字符,在内存中站4个字符,而英文属于ASCII字符,内存中只占2个字符.Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会乱码.编码 ...
- Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]
项目当中用到cookie保存中文,但是会报如下错误: Control character in cookie value, consider BASE64 encoding your value 大概 ...
- Cookie不能保存中文解决方式
在用cookie保存username的时候,发现cookie值不能存中文,报例如以下错: Control character in cookie value, consider BASE64 e ...
- JavaWeb学习总结(十六)Cookie保存中文内容
Cookie的值保存中文内容,可以使用Java.net.URLDecoder进行解码. 示例: <%@page import="java.net.URLDecoder"%&g ...
- JAVA- JSP中解决无法在Cookie当中保存中文字符的问题
因为cookie的值是ASCII字符,不能直接把自定义cookie的值直接赋值为中文,但是要实现这个功能,还是有方法的. 1.java中已经给我们提供了方法,此时只需要导入该包就行 <%@ pa ...
- js保存,获取,删除cookie的操作
[转]来自:http://blog.csdn.net/itmyhome1990/article/details/7363816 JSP表单页面 <form action="login& ...
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
Servlet的缺点 开发人员要十分熟悉JAVA 不利于页面调试和维护(修改,重新编译) 很难利用网页设计工具进行页面设计(HTML内容导入到servlet中,用PrintWriter的对象进行输出) ...
随机推荐
- 大四实习准备6_android服务
2015-5-9 1.服务是什么 android四大组件之一,有一些特点: 1)服务的运行不依赖于用户界面,即使程序被切换到后台.或者用户打开了另外一个应用程序,服务仍然能够保持正常运行.(当对应的程 ...
- MYSQL学习心得
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 理解$watch ,$apply 和 $digest --- 理解数据绑定过程
原文地址:http://angular-tips.com/blog/2013/08/watch-how-the-apply-runs-a-digest/ 注 这篇博文主要是写给新手的,是给那些刚刚开始 ...
- C# 有关文件路径的操作
1. 由文件全路径,获取文件扩展名.文件名等信息 string fullPath = @"\WebSite1\Default.aspx"; string filename = Sy ...
- tdx api z
调用TdxAPI.dll函数 .DLL命令 TdxInit, 逻辑型, "TdxApi.dll", "TdxInit", , 初始化通达信实例,成功时返回tru ...
- ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]
准备工作: 在vs工具栏中找到NuGet 下载DotNetZip 现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...
- 五指cms筛选功能的实现:
筛选功能的实现: $_POST['page_urlrule'] = 'tuan-{$pinpai}-{$renqun}-{$type}-{$price}-{$area}-{$tese}-{$st}-{ ...
- 转载:MATLAB画图常用调整代码
%单y轴 plot(t*1e+,abs(iGG)/max(abs(iGG)),); axis([-,,,]) xlabel('时间/ns'); ylabel('幅度/a.u.'); ,'FontNam ...
- Ubuntu安装JDK1.6
1.下载JDK 网址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-4 ...
- HDU-4605 Magic Ball Game 树状数组+离散+dfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4605 题意:给一颗树,每个节点有个权值w[u],每个节点只有两个儿子或者没有儿子,从根节点放下一个小球 ...