用session来做一个购物系统,怎么做?

wutingting529 2009-03-24 02:27:01
我是一个刚刚学习jsp的菜鸟,请帮帮我,把主要代码写出来吧,谢谢
...全文
156 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
suncheng_hong 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gf173237 的回复:]
去买一本jsp的教材,里面基本上都有这个实例.
[/Quote]
session 保存用户的 购物信息
feixiangclf 2009-03-25
  • 打赏
  • 举报
回复
写错了一句:session.setAttribute("en_list", list); 改为session.setAttribute("shop_list", list);
feixiangclf 2009-03-25
  • 打赏
  • 举报
回复
放如购物车程序,只将商品在数据库中的保存的id(主键)和购买的数量放入购物车,有什么其他需要自己修改。

<%
List oldlist = (List) session.getAttribute("shop_list");
if (oldlist == null) {
List list = new ArrayList();
session.setAttribute("en_list", list);
oldlist = (List) session.getAttribute("shop_list");
}
int pid = ParamUtil.getIntParameter(request, "pid", 0); //获得商品id
int num = ParamUtil.getIntParameter(request, "num", 0); //获得商品数量

if ((pid != 0) && (num != 0)) {
String insertstr = String.valueOf(pid) + "_" + String.valueOf(num);
if (oldlist.size() > 0) {
String str = "";
String proidstr = "";
String pronumstr = "";
int proid = 0;
int pronum = 0;
int sort = 0;
boolean existflag = false;

for (int i = 0; i < oldlist.size(); i++) {
str = (String) oldlist.get(i);
proidstr = str.substring(0, str.indexOf("_"));
proid = Integer.parseInt(proidstr);

if (pid == proid) {
existflag = true;
pronumstr = str.substring(str.indexOf("_") + 1, str.lastIndexOf("_"));
pronum = Integer.parseInt(pronumstr);
sort = i;
break;
}
}

if (existflag) {
pronum = pronum + num;
insertstr = String.valueOf(proid) + "_" + String.valueOf(pronum);
oldlist.set(sort, insertstr);
} else {
oldlist.add(insertstr);
}
} else {
oldlist.add(insertstr);
}
}
out.print("购买成功!请查看购物车!");
%>
gf173237 2009-03-25
  • 打赏
  • 举报
回复
去买一本jsp的教材,里面基本上都有这个实例.
wutingting529 2009-03-24
  • 打赏
  • 举报
回复
谢谢楼上的啊,但是我们现在只是学了session的一些方法而已,你这里的有些方法我并没有学过的,还有一些简单的吗,总之谢谢了
酒浪子 2009-03-24
  • 打赏
  • 举报
回复

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

HttpSession session=request.getSession();

/*使用Map集合实现购物车*/

BookBean bookBean=(BookBean)session.getAttribute("book");
//从session 中得到购物车对象
Map<String,CartItemBean> cartMap=(Map<String,CartItemBean>)session.getAttribute("cartMap");
if(session.getAttribute("cartMap")==null){//如果不存在,则创建一个新的购物车
cartMap=new HashMap<String,CartItemBean>();
session.setAttribute("cartMap", cartMap);
}
//从购物车中获取一个商品对象
CartItemBean cartItemBean=(CartItemBean)cartMap.get(bookBean.getIsbn());
if(cartItemBean==null){//如果为空,则添加一件新的商品
cartMap.put(bookBean.getIsbn(), new CartItemBean(bookBean,1));
}else{//不为空,则更新其数量
cartItemBean.setQuantity(cartItemBean.getQuantity()+1);
}

response.sendRedirect("/Books/viewCart.jsp");
}
wutingting529 2009-03-24
  • 打赏
  • 举报
回复
谢谢啦,但是可不可以给我一个准确的例子啊,我可以参考参考啊。谢谢啦
mtrhhy 2009-03-24
  • 打赏
  • 举报
回复
en a
yefei679 2009-03-24
  • 打赏
  • 举报
回复
你说的太泛了
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。

保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发挥给服务器。一般这个cookie的名字都是类似于SEEESIONID,而。比如weblogic对于web应用程序生成的cookie,JSESSIONID= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是 JSESSIONID。

由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
另一种是作为查询字符串附加在URL后面,表现形式为http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
这两种方式对于用户来说是没有区别的,只是服务器在解析的时候处理的方式不同,采用第一种方式也有利于把session id的信息和正常程序参数区分开来。
为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。

另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如下面的表单
<form name="testform" action="/xxx">
<input type="text">
</form>
在被传递给客户端之前将被改写成
<form name="testform" action="/xxx">
<input type="hidden" name="jsessionid"
value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
<input type="text">
</form>
这种技术现在已较少应用,笔者接触过的很古老的iPlanet6(SunONE应用服务器的前身)就使用了这种技术。
实际上这种技术可以简单的用对action应用URL重写来代替。

在谈论session机制的时候,常常听到这样一种误解“只要关闭浏览器,session就消失了”。其实可以想象一下会员卡的例子,除非顾客主动对店家提出销卡,否则店家绝对不会轻易删除顾客的资料。对session来说也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个 session id就消失了,再次连接服务器时也就无法找到原来的session。如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的HTTP请求头,把原来的session id发送给服务器,则再次打开浏览器仍然能够找到原来的session。

恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
内容概要:本文围绕“阶梯碳下考虑P2G-CCS与供需灵活响应的IES优化调度”展开,基于Matlab平台构建综合能源系统(IES)在阶梯式碳交易机制下的优化调度模型。研究深度融合电制气(P2G)与碳捕集、利用与封存(CCS)技术,结合需求侧灵活响应机制,旨在提升系统的低碳运行能力与经济性。通过建立多能流耦合的优化模型,协调电力、天然气、热力等多种能源形式的协同调度,有效降低系统碳排放强度,并借助YALIMIP工具包调用求解器进行高效求解。文档提供了完整的代码实现、模型构建流程与结果分析方法,涵盖从问题建模到仿真实现的全过程,具备较强的可复现性与科研参考价值。; 适合人群:具备电力系统、能源系统或优化建模相关背景的研究生、高校教师及工程技术人员,尤其适合从事综合能源系统、碳减排策略、P2G与CCS技术集成研究的专业人员,需熟练掌握Matlab编程与基本的数学规划知识。; 使用场景及目标:①用于研究阶梯式碳交易政策下综合能源系统的低碳经济调度策略;②支撑P2G-CCS技术与需求响应机制在IES中的仿真集成与性能评估;③作为撰写高水平学术论文(如EI/SCI收录)的技术基础与复现资源,推动碳中和背景下能源系统优化方向的创新研究。; 阅读建议:建议结合百度网盘提供的完整代码与资料包,按照模块逐步调试程序,重点理解目标函数的设计逻辑、碳交易成本的建模方式、约束条件的数学表达及求解器的配置方法,同时关注多能耦合设备的建模细节,配合公众号“荔枝科研社”获取持续的技术支持与案例拓展。
内容概要:本文系统研究了基于卷积神经网络(CNN)与支持向量机(SVM)融合的CNN-SVM混合模型在数据分类预测中的应用,尤其聚焦于工业故障识别领域。通过Matlab平台实现,该方法首先利用CNN强大的多层次特征提取能力对原始输入数据进行深度特征学习,自动捕获关键局部模式与空间结构信息,随后将提取的高层特征作为输入传递至SVM分类器,借助SVM在高维空间中小样本条件下卓越的分类性能与泛化能力完成最终判别任务。文中详尽阐述了模型的整体架构设计、网络参数配置、训练优化流程及特征迁移机制,充分结合了深度学习在特征表达上的优势与传统机器学习在分类决策上的稳健性。实验部分通过实际故障数据集验证了该混合模型相较于单一CNN或SVM模型在分类准确率、鲁棒性和抗过拟合能力方面的显著提升,证明了其在复杂故障诊断任务中的有效性与先进性; 适合人群:具备一定机器学习与深度学习理论基础,熟悉Matlab编程环境,从事故障诊断、模式识别、智能制造、电力系统监控或工业数据分析等相关领域的研究生、科研人员及工程技术开发者; 使用场景及目标:① 应用于旋转机械、电力设备、航空航天等领域的多类别故障识别与状态监测;② 掌握深度特征提取与传统分类器融合的技术路径,提升小样本、高噪声环境下数据分类的精度与可靠性;③ 为撰写高水平学术论文、开展科研项目或工程实践提供可复现的算法框架与完整代码支持; 阅读建议:读者应深入理解CNN与SVM的协同工作机制,重点分析特征提取层与分类层之间的接口设计,建议动手运行并调试所提供的Matlab代码,尝试在不同数据集上进行迁移实验与参数调优,以全面掌握该混合模型的应用技巧与优化策略。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧