简易session购物车开发
程序员文章站
2022-06-10 14:18:01
...
简易session购物车开发
要求:
(1)保证中文的正常显示
(2)表单提交以后,可以专门用一个jsp处理,然后再回退到操作界面(需要一定的时间延迟刷新,保证用户能感受到页面的变化)。
(3)购物车数据通过Session保存,窗口关闭以后数据消失。
shopping cart1.jsp:购物车一页面球类
<%--
Created by IntelliJ IDEA.
User: Luminary
Date: 2017/11/3
Time: 13:05
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>购物球类</title>
</head>
<body>
<h4>各种球大甩卖,一律八块</h4>
<form action="data.jsp" method="post" name="Ball" id="ball">
<input type="checkbox" name="data" value="篮球">篮球<br>
<input type="checkbox" name="data" value="足球">足球<br>
<input type="checkbox" name="data" value="排球">排球<br><br>
<input type="submit" value="提交">
<input type="reset" value="全部重写"><br><br>
<a href="shopping%20cart2.jsp">买点别的</a> <a href="display.jsp">查看购物车</a>
</form>
</body>
</html>
shopping cart2.jsp:购物车二页面肉类
<%--
Created by IntelliJ IDEA.
User: Luminary
Date: 2017/11/3
Time: 13:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>肉类购物车</title>
</head>
<body>
<h4>各种肉大甩卖,一律十块:</h4>
<form name="Meet" id="Meet" action="data.jsp" method="post">
<input type="checkbox" name="data" value="猪肉">猪肉<br>
<input type="checkbox" name="data" value="牛肉">牛肉<br>
<input type="checkbox" name="data" value="羊肉">羊肉<br><br>
<input type="submit" value="提交">
<input type="reset" value="全部重写"><br><br>
<a href="shopping%20cart1.jsp">买点别的</a> <a href="display.jsp">查看购物车</a>
</form>
</body>
</html>
data.jsp:数据处理页面
**<%--
Created by IntelliJ IDEA.
User: Luminary
Date: 2017/11/3
Time: 13:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %>
<html>
<head>
<title>data</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String goods[] = request.getParameterValues("data");
//获取表单传过来的数据存入字符串数组中
Set <String> now= (Set <String>) session.getAttribute("list");
//当前session内的东西
Set <String> set = new HashSet<String>(); //新建集合将数据存入
if(goods!=null)
Collections.addAll(set,goods); //将货物添加到集合中
if(now!=null)
set.addAll(now); //将session内当前的东西添加到集合中
session.setAttribute("list",set); //将集合存入session中,命名为list
%>
</body>
<script language="JavaScript">
history.go(-1);
</script>
</html>
display.jsp:显示数据页面
<%--
Created by IntelliJ IDEA.
User: Luminary
Date: 2017/11/3
Time: 13:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %>
<html>
<head>
<title>显示购物车内容</title>
</head>
<body>
<h3>你选择的结果是:</h3>
<center>
<%
Set <String> goods = (Set<String>)session.getAttribute("list");
if (goods!= null)
for (Iterator it = goods.iterator(); it.hasNext(); )
out.print(it.next().toString() + "<br>");
%>
</center>
</body>
</html>
图片效果展示
- 购物车一初始界面,可选择向购物车中添加物品
- 在购物车选好物品后,可以选择“买点别的”,跳转到第二个购物页面选购
- 在第二个购物界面选择购物
-查看购物车页面
注意点:
提交到数据处理页面后,然后返回当前页面(相当于刷新)
<script language="JavaScript">
history.go(-1);
</script>
中文正常显示(在获取数据前)
request.setCharacterEncoding("UTF-8");