欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简易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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>

图片效果展示

  • 购物车一初始界面,可选择向购物车中添加物品

简易session购物车开发

  • 在购物车选好物品后,可以选择“买点别的”,跳转到第二个购物页面选购

简易session购物车开发

  • 在第二个购物界面选择购物

简易session购物车开发

-查看购物车页面

简易session购物车开发

注意点:

提交到数据处理页面后,然后返回当前页面(相当于刷新)

<script language="JavaScript">
    history.go(-1);
</script>

中文正常显示(在获取数据前)

 request.setCharacterEncoding("UTF-8");
相关标签: session