• 基于session对象实现简单的购物车应用


    大部分购物网站都会实现购物车的功能,基于session对象的购物车应用可以实现一个用户会话有效期内,用户所选多个商品的存储。

    为了实现这样的功能需要编写三个JSP页面,分别是login.jsp、main.jsp和shoppingCart.jsp,login.jsp页面提供一个表单,要求用户输入用户名称,表单提交给主页面main.jsp。具体如下:

    Login.jsp代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>网上购物登陆界面</title>

    </head>

    <body bgcolor="CCCFFF">

    <form action="main.jsp" method="get">

    <table>

    <tr>

    <td>输入用户名:</td>

    <td><input type="text" name="UserName" size="16"></td>

    </tr>

    <tr>

    <td>输入密码:</td>

    <td><input type="password" name="password" size="16"></td>

    </tr>

    <tr>

    <td><input type="submit" value="登录"></td>

    </tr>

    </table>

    </form>

    </body>

    </html>

    没有什么好说的,就是一个简单的登录界面,其中登录请求提交到main.jsp界面,运行情况如下图所示:

     

    main.jsp界面代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>网上购物主界面</title>

    </head>

    <body bgcolor="CCCFFF">

    <%

    request.setCharacterEncoding("UTF-8");

    String c=request.getParameter("UserName");

    String d=request.getParameter("password");

    String a=(String)session.getAttribute("UserName1");

    if(a==null){

    if(c.equals("???")&&d.equals("???")){

    if(a==null){

    String b=request.getParameter("UserName");

    if(b==null){

    response.sendRedirect("bookShopLogin.jsp");

    }

    else{

    session.setAttribute("UserName1",b);

    out.println(b+"! 欢迎您来到主界面,请选择您要购买的商品:");

    }

    }

    else{

    out.println(a+"! 欢迎您来到主界面,请选择您要购买的商品:");

    }

    }

    else

    response.sendRedirect("bookShopLogin.jsp");

    }

    else

    out.println(a+"! 欢迎您来到主界面,请选择您要购买的商品:");

    %>

    <form action="shoppingCart.jsp" method="post">

    <p>商品信息</p>

    <table border="1">

    <tr>

    <td><input type="checkbox" name="choice" value="U盘"></td>

    <td>U盘</td>

    </tr>

    <tr>

    <td><input type="checkbox" name="choice" value="移动硬盘"></td>

    <td>移动硬盘</td>

    </tr>

    <tr>

    <td><input type="checkbox" name="choice" value="鼠标"></td>

    <td>鼠标</td>

    </tr>

    <tr>

    <td><input type="checkbox" name="choice" value="键盘"></td>

    <td>键盘</td>

    </tr>

    </table>

    <input type="submit" value="加入购物车">

    </form>

    </body>

    </html>

    之里面有一条输出语句是没有意义的,因为对运行不会产生任何影响,因此我懒的去删了,可以看出main界面收到请求后,对用户输入的密码和用户名进行验证,具体用户名和密码我不写了,可以自己修改,即带?的那一串,然后用form表单创建一个简单的购物界面,选好想要购买的物品后,点击加入购物车按钮,将请求提交到shoppingCart.jsp界面

    利用session对象的getAttribute方法获取用户名,并将其输出,图中用户名已做马赛克处理

     

    shoppingCart.jsp界面代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ page import="java.util.*" %>

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>购物车界面</title>

    </head>

    <body>

    <%

    request.setCharacterEncoding("UTF-8");

    String username=(String)session.getAttribute("UserName1");

    Vector b=(Vector)session.getAttribute("bookShop");

    if(b==null)

    b=new Vector();

    String[] g=request.getParameterValues("choice");

    if(g!=null){

    for(int i=0;i<g.length;i++)

    b.add(g[i]);

    }

    session.setAttribute("bookShop",b);

    out.println("<br>您的姓名:"+username);

    out.println("<br>购物车中的商品:<br>");

    for(int j=0;j<b.size();j++)

    out.println(b.get(j)+"<br>");

    %>

    <p><a href="bookShopLoginCheck.jsp">返回主界面继续购物</a></p>

    </body>

    </html>

    最后运行结果如下图,当然如果顾客还想继续选购商品时,可以通过点击“返回主界面继续购物”来返回购物界面

     

  • 相关阅读:
    python爬虫学习之MongoDB学习笔记
    python基础学习笔记
    基于python的turtle模块画国旗
    基于tkinter的gui编程基础学习笔记
    python爬虫实现各视频网站vip付费电影下载
    网页模板收藏
    python爬虫实战项目
    python爬取詹姆斯职业生涯数据并生成图标展示
    爬虫框架scrapy学习笔记
    基于python的OpenCV图像处理学习笔记
  • 原文地址:https://www.cnblogs.com/zczdgwd/p/13060445.html
Copyright © 2020-2023  润新知