『壹』 Java中用session和hashmap实现最简单的购物车,不需要bean,servlet或者数据库。
session是httpservlet的一个类,你不用servlet,根本就没有session这个玩意。简单来说,session是跑在servlet上的汽车,没有路你的车还能跑,怕不是变形金刚哦
『贰』 求助java+jsp+javaBean(一段关于session购物车程序)
错误在于你for循环抄里面的setCount。
应该是ci.setCount(item.getCount() + ci.getCount());
不是item.setCount。
你的逻辑是,先查找items里面是否有该商品,如果有,更新数量;如果没有,向列表中添加一个新的item。所以for循环里是查找到的情况,对你查到的那条商品(ci),设置新的数量(setCount)即可。
而item是你传过来的参数,item.setCount没有意义。
『叁』 jsp 中session的购物车问题
display.jsp 帮你修改了一下,有个小错误,见注释:
<%@page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>购物车</title>
</head>
<body>
<center>
您选购的商品
</center>
<br>
<hr>
<%
Integer itemCount = (Integer) session.getAttribute("itemCount");
if (itemCount == null) {
itemCount = new Integer(0);
}
%>
<%
String[] item = { "篮球", "足球", "乒乓球", "地球", "电脑", "电视机", "宝马",
"法拉利", };
String[] itemsSelected = request.getParameterValues("item");
String itemName = "";
if (itemsSelected != null) {
for (int i = 0; i < itemsSelected.length; i++) {
itemName = itemsSelected[i];
session.setAttribute("item" + itemCount, itemName);
session.setAttribute("itemCount", itemCount);
//itemCount++这句应该放在这里,不然session.getAttribute("item0")==null
//你对比一下原来的代码就知道为什么getAttribute("item0")是null了
itemCount = new Integer(itemCount.intValue() + 1);
}
}
%>
<%
for (int i = 0; i < itemCount.intValue(); i++) {
String items = (String) session.getAttribute("item" + i);
int ite = 0;
out.println(items + " ");
ite = Integer.parseInt(items);
out.println(item[ite] + "<br>");
}
%>
</body>
</html>
『肆』 请问如何基于javaee用cookie实现购物车的代码,谢谢了
.怎么说呢 用cookie实现购物车根本就没意义 .换太电脑就啥都没了...
『伍』 session+cookies实现购物车功能,javaweb开发
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'shop2.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
Map<String,Integer> itm=(Map<String,Integer>)session.getAttribute("item");
if(itm==null){
itm=new HashMap<String,Integer>();
itm.put("电视", 1);
itm.put("苹果", 0);
itm.put("香蕉", 1);
itm.put("衣服", 0);
}
String [] buy=request.getParameterValues("c");
for(String b:buy){
if(b.equals("电视")){
int num=itm.get("电视");
itm.put(b, num+1);
}
if(b.equals("苹果")){
int num=itm.get(b);
itm.put(b, num+1);
}
if(b.equals("香蕉")){
int num=itm.get(b);
itm.put(b, num+1);
}
if(b.equals("衣服")){
int num=itm.get(b);
itm.put(b, num+1);
}
}
session.setAttribute("item", itm);
%>
你所购买的物品<br>
电视:<%=itm.get("电视") %>本<br>
苹果:<%=itm.get("苹果") %>个<br>
香蕉:<%=itm.get("香蕉") %>个<br>
衣服:<%=itm.get("衣服") %>件<br>
<p><a href="shop.jsp">再次购买</a></p>
</body>
</html>
下面是购买页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'shop.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
欢迎光临本店! <br>
<form action="shop2.jsp" method="post">
<input name="c" type="checkbox" value="电视" />电视
<input name="c" type="checkbox" value="苹果" />苹果
<input name="c" type="checkbox" value="香蕉" />香蕉
<input name="c" type="checkbox" value="衣服" />衣服
<img alt="dddd" src="<%=request.getAttribute("path")%>">
<p> <%=request.getAttribute("yy")%></p>
<input name="" type="submit" value="确认购买" />
</form>
</body>
</html>
下面是使用cookie的
添加Cookie
Cookie uname1=new Cookie("lname",username);
uname1.setMaxAge(24*3600);
Cookie upwd1=new Cookie("lpwd",pwd);
upwd1.setMaxAge(24*3600);
response.addCookie(uname1);
response.addCookie(upwd1);
添加session
session.setAttribute("log_name", username);
以下代码是对cookie和session的数据操作!
<%
String uname="";
String upwd="";
Cookie[] cookies=request.getCookies(); //一request获范围获取一个
cookie实例
if(cookies!=null){
for(Cookie c: cookies){
if("lname".equals(c.getName())){ //判断cookie里面的名字是否等于这
个
uname=c.getValue(); //如果等于就获取它的值
}
if("lpwd".equals(c.getName())){
upwd=c.getValue();
}
}
String sql2="select * from member where username='"+uname+"'";
ResultSet rs2=null;
rs2=DBHelper.executeQuery(sql2);
boolean is=true;
while(rs2.next()){
String pp=rs2.getString("upwd");
if(pp.equals(upwd)){
is=false;
}
}
if(session.getAttribute("log_name")!=null){ //判断是否有slog_name这
个session
uname=(String)session.getAttribute("log_name");
is=false;
}
if(is){
response.sendRedirect("index1.jsp");
}
}
%>
<%
application.setAttribute("log", uname);
%>
『陆』 关于spring mvc的session实现购物车问题
下单后把CART从session中移除啊
『柒』 在做一个java web项目使用session保持购物车信息。
session表示当前会话,也就是说浏览关闭之后它就没有了,切换用户也会没有,最好保存在数据库中
『捌』 购物车用session怎么实现的
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();
//获得session
request.getSession();//创建了一个session
//获得所有商品
Map<String,Book>all=DB.getAll();
out.write("本站提供如下商品<br>");
for(Entry<String,Book>e:all.entrySet()){
Bookbook=e.getValue();
//超链接要url重写
//url重写做了两件事情,第一,获得session的id,第二,将id加到地址后面
Stringurl="/javaweb07/servlet/BuyServlet?id="+book.getId();
StringnewUrl=response.encodeURL(url);
out.write(book.getName()+"<ahref='"+newUrl+"'target='_blank'>购买</a><br>");
}
}
BuyServlet.java
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//获得id
Stringid=request.getParameter("id");
//找出书
Bookbook=DB.find(id);
//获得购物车
HttpSessionsession=request.getSession();
Listcart=(List)session.getAttribute("cart");
if(cart==null){
//刚进超市,分配购物车
cart=newArrayList();
}
//加入购物车
cart.add(book);
//将购物车找个地方存起来,方便下次购买
session.setAttribute("cart",cart);
//第一次创建session的时候需要发Cookie,将sessionid带给浏览器
//获得sessionid
Stringsessionid=session.getId();
//发送cookie,Cookie的key是区分大小写
Cookiecookie=newCookie("JSESSIONID",sessionid);
//设置有效时间
cookie.setMaxAge(60*60*5);
response.addCookie(cookie);
//请求重定向到购物车页面
Stringurl="/javaweb07/servlet/ListCartServlet";
//url重写
StringnewUrl=response.encodeRedirectURL(url);
response.sendRedirect(newUrl);
}
ListCarServlet
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();
//获取购物车
//getSession方法会拿着用户的jsessionid去内存找session找不到才创建
HttpSessionsession=request.getSession();
List<Book>cart=(List<Book>)session.getAttribute("cart");
if(cart==null){
out.write("对不起!您还没有购买商品!!!");
return;
}
//遍历购物车中的商品显示
out.write("您购买了如下商品:<br>");
for(Bookbook:cart){
out.write(book.getName()+","+book.getPrice()+"<br>");
}
//让session立即失效
//session.invalidate();
out.write("<inputtype='button'value='进入结算中心'/>");
}
『玖』 java web模拟购物车将list存放到session中,存在问题
因为从session获取的那个是List集合,也就是说它返回的是堆内存的引用,版修改shopcar的东西权就是在修改堆内存的东西,所以你可以重新覆盖session里面的那个list,也可以选择不覆盖,效果是一样的。但不建议选择覆盖因为可能会存在并发问题,即a用户把b用户的修改的值给覆盖掉。
『拾』 java 购物车session的问题
页面把商来品ID传到后台,后台根据源ID查出商品,调用session.setAttribute(key,value)方法把商品信息放入session,可以把商品放到一个list里再放到session中 ,每添加一个商品就往改list里添加一个元素