• 购物车


    成员分工

    成员 分工
    陈艺彬 类的编写,面向对象设计,git代码管理,数据库编写,界面设计
    洪安柯 前期调查,界面设计,数据库连接
    林威 博客编写,UML图制作,界面设计,代码规范

    Git链接

    https://github.com/ccc123-ccc/BuyShopCar

    前期调查

    UML图

    用户信息,商品信息全部存入数据库

    html,css,jsp实现界面

    用户登录界面

    商品界面

    购物车内容

    管理员界面


    登录注册系统

    购物系统菜单

    展示所有商品

    根据价格搜索商品

    查看购物车

    关键代码

    用户注册

    <script type="text/javascript">
    			// 页面加载完成之后
    			$(function () {
    
    				$("#username").blur(function () {
    					//1 获取用户名
    					var username = this.value;
    					$.getJSON("http://localhost:8080/book/userServlet","action=ajaxExistsUsername&username=" + username,function (data) {
    						if (data.existsUsername) {
    							$("span.errorMsg").text("用户名已存在!");
    						} else {
    							$("span.errorMsg").text("用户名可用!");
    						}
    					});
    				});
    
    
    				// 给验证码的图片,绑定单击事件
    				$("#code_img").click(function () {
    					// 在事件响应的function函数中有一个this对象。这个this对象,是当前正在响应事件的dom对象
    					// src属性表示验证码img标签的 图片路径。它可读,可写
    					// alert(this.src);
    					this.src = "${basePath}kaptcha.jpg?d=" + new Date();
    				});
    
    				// 给注册绑定单击事件
    				$("#sub_btn").click(function () {
    					// 验证用户名:必须由字母,数字下划线组成,并且长度为5到12位
    					//1 获取用户名输入框里的内容
    					var usernameText = $("#username").val();
    					//2 创建正则表达式对象
    					var usernamePatt = /^w{5,12}$/;
    					//3 使用test方法验证
    					if (!usernamePatt.test(usernameText)) {
    						//4 提示用户结果
    						$("span.errorMsg").text("用户名不合法!");
    
    						return false;
    					}
    					// 验证密码:必须由字母,数字下划线组成,并且长度为5到12位
    					//1 获取用户名输入框里的内容
    					var passwordText = $("#password").val();
    					//2 创建正则表达式对象
    					var passwordPatt = /^w{5,12}$/;
    					//3 使用test方法验证
    					if (!passwordPatt.test(passwordText)) {
    						//4 提示用户结果
    						$("span.errorMsg").text("密码不合法!");
    
    						return false;
    					}
    
    					// 验证确认密码:和密码相同
    					//1 获取确认密码内容
    					var repwdText = $("#repwd").val();
    					//2 和密码相比较
    					if (repwdText != passwordText) {
    						//3 提示用户
    						$("span.errorMsg").text("确认密码和密码不一致!");
    
    						return false;
    					}
    
    					// 邮箱验证:xxxxx@xxx.com
    					//1 获取邮箱里的内容
    					var emailText = $("#email").val();
    					//2 创建正则表达式对象
    					var emailPatt = /^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+$/;
    					//3 使用test方法验证是否合法
    					if (!emailPatt.test(emailText)) {
    						//4 提示用户
    						$("span.errorMsg").text("邮箱格式不合法!");
    
    						return false;
    					}
    
    					// 验证码:现在只需要验证用户已输入。因为还没讲到服务器。验证码生成。
    					var codeText = $("#code").val();
    
    					//去掉验证码前后空格
    					// alert("去空格前:["+codeText+"]")
    					codeText = $.trim(codeText);
    					// alert("去空格后:["+codeText+"]")
    
    					if (codeText == null || codeText == "") {
    						//4 提示用户
    						$("span.errorMsg").text("验证码不能为空!");
    
    						return false;
    					}
    
    					// 去掉错误信息
    					$("span.errorMsg").text("");
    
    				});
    
    			});
    
    		</script>
    <div class="form">
    								<form action="userServlet" method="post">
    									<input type="hidden" name="action" value="regist">
    									<label>用户名称:</label>
    									<input class="itxt" type="text" placeholder="请输入用户名"
    										   value="${requestScope.username}"
    										   autocomplete="off" tabindex="1" name="username" id="username" />
    									<br />
    									<br />
    									<label>用户密码:</label>
    									<input class="itxt" type="password" placeholder="请输入密码"
    										   autocomplete="off" tabindex="1" name="password" id="password" />
    									<br />
    									<br />
    									<label>确认密码:</label>
    									<input class="itxt" type="password" placeholder="确认密码"
    										   autocomplete="off" tabindex="1" name="repwd" id="repwd" />
    									<br />
    									<br />
    									<label>电子邮件:</label>
    									<input class="itxt" type="text" placeholder="请输入邮箱地址"
    										   value="${requestScope.email}"
    										   autocomplete="off" tabindex="1" name="email" id="email" />
    									<br />
    									<br />
    									<label>验证码:</label>
    									<input class="itxt" type="text" name="code" style=" 80px;" id="code" />
    									<img id="code_img" alt="" src="kaptcha.jpg" style="float: right; margin-right: 40px;  110px; height: 30px;">
    									<br />
    									<br />
    									<input type="submit" value="注册" id="sub_btn" />
    								</form>
    							</div>
    

    用户登录

    <div id="content">
    					<div class="login_form">
    						<div class="login_box">
    							<div class="tit">
    								<h1>欢迎登录</h1>
    								<a href="pages/user/regist.jsp">立即注册</a>
    							</div>
    							<div class="msg_cont">
    								<b></b>
    								<span class="errorMsg">
    									${ empty requestScope.msg ? "请输入用户名和密码":requestScope.msg }
    								</span>
    							</div>
    							<div class="form">
    								<form action="userServlet" method="post">
    									<input type="hidden" name="action" value="login" />
    									<label>用户名称:</label>
    									<input class="itxt" type="text" placeholder="请输入用户名"
    										   autocomplete="off" tabindex="1" name="username"
    										   value="${requestScope.username}" />
    									<br />
    									<br />
    									<label>用户密码:</label>
    									<input class="itxt" type="password" placeholder="请输入密码"
    										   autocomplete="off" tabindex="1" name="password" />
    									<br />
    									<br />
    									<input type="submit" value="登录" id="sub_btn" />
    								</form>
    							</div>
    							
    						</div>
    					</div>
    				</div>
    

    购物商城界面

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>图书管理</title>
    
    	<%-- 静态包含 base标签、css样式、jQuery文件 --%>
    	<%@ include file="/pages/common/head.jsp"%>
    	<script type="text/javascript">
    		$(function () {
    			// 给删除的a标签绑定单击事件,用于删除的确认提示操作
    			$("a.deleteClass").click(function () {
    				// 在事件的function函数中,有一个this对象。这个this对象,是当前正在响应事件的dom对象。
    				/**
    				 * confirm是确认提示框函数
    				 * 参数是它的提示内容
    				 * 它有两个按钮,一个确认,一个是取消。
    				 * 返回true表示点击了,确认,返回false表示点击取消。
    				 */
    				return confirm("你确定要删除【" + $(this).parent().parent().find("td:first").text() + "】?");
    				// return false// 阻止元素的默认行为===不提交请求
    			});
    		});
    	</script>
    
    </head>
    <body>
    	
    	<div id="header">
    			<img class="logo_img" alt="" src="../../static/img/logo.gif" >
    			<span class="wel_word">图书管理系统</span>
    
    		<%-- 静态包含 manager管理模块的菜单  --%>
    		<%@include file="/pages/common/manager_menu.jsp"%>
    
    
    	</div>
    	
    	<div id="main">
    		<table>
    			<tr>
    				<td>名称</td>
    				<td>价格</td>
    				<td>作者</td>
    				<td>销量</td>
    				<td>库存</td>
    				<td colspan="2">操作</td>
    			</tr>		
    
    			<c:forEach items="${requestScope.page.items}" var="book">
    				<tr>
    					<td>${book.name}</td>
    					<td>${book.price}</td>
    					<td>${book.author}</td>
    					<td>${book.sales}</td>
    					<td>${book.stock}</td>
    					<td><a href="manager/bookServlet?action=getBook&id=${book.id}&pageNo=${requestScope.page.pageNo}">修改</a></td>
    					<td><a class="deleteClass" href="manager/bookServlet?action=delete&id=${book.id}&pageNo=${requestScope.page.pageNo}">删除</a></td>
    				</tr>
    			</c:forEach>
    
    			<tr>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td></td>
    				<td><a href="pages/manager/book_edit.jsp?pageNo=${requestScope.page.pageTotal}">添加图书</a></td>
    			</tr>	
    		</table>
    
    
    		<%--静态包含分页条--%>
    		<%@include file="/pages/common/page_nav.jsp"%>
    
    
    
    
    	</div>
    
    
    	<%--静态包含页脚内容--%>
    	<%@include file="/pages/common/footer.jsp"%>
    
    
    </body>
    </html>
    

    购物车订单界面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>订单管理</title>
    
    	<%-- 静态包含 base标签、css样式、jQuery文件 --%>
    	<%@ include file="/pages/common/head.jsp"%>
    
    
    </head>
    <body>
    	
    	<div id="header">
    			<img class="logo_img" alt="" src="../../static/img/logo.gif" >
    			<span class="wel_word">订单管理系统</span>
    
    		<%-- 静态包含 manager管理模块的菜单  --%>
    		<%@include file="/pages/common/manager_menu.jsp"%>
    
    	</div>
    	
    	<div id="main">
    		<table>
    			<tr>
    				<td>日期</td>
    				<td>金额</td>
    				<td>详情</td>
    				<td>发货</td>
    				
    			</tr>		
    			<tr>
    				<td>2015.04.23</td>
    				<td>90.00</td>
    				<td><a href="#">查看详情</a></td>
    				<td><a href="#">点击发货</a></td>
    			</tr>	
    			
    			<tr>
    				<td>2015.04.20</td>
    				<td>20.00</td>
    				<td><a href="#">查看详情</a></td>
    				<td>已发货</td>
    			</tr>	
    			
    			<tr>
    				<td>2014.01.23</td>
    				<td>190.00</td>
    				<td><a href="#">查看详情</a></td>
    				<td>等待收货</td>
    			</tr>		
    		</table>
    	</div>
    
    
    	<%--静态包含页脚内容--%>
    	<%@include file="/pages/common/footer.jsp"%>
    
    
    </body>
    </html>
    

    购物车

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>购物车</title>
    
    	<%-- 静态包含 base标签、css样式、jQuery文件 --%>
    	<%@ include file="/pages/common/head.jsp"%>
    
    
    </head>
    <body>
    	<div id="header">
    			<img class="logo_img" alt="" src="static/img/c.jpg" height="100" width="300" >
    			<span class="wel_word">购物车</span>
    
    		<%--静态包含,登录 成功之后的菜单 --%>
    		<%@ include file="/pages/common/login_success_menu.jsp"%>
    		<script type="text/javascript">
    			$(function () {
    				// 给 【删除】绑定单击事件
    				$("a.deleteItem").click(function () {
    					return confirm("你确定要删除【" + $(this).parent().parent().find("td:first").text() +"】吗?")
    				});
    				// 给清空购物车绑定单击事件
    				$("#clearCart").click(function () {
    					return confirm("你确定要清空购物车吗?");
    				})
    				// 给输入框绑定 onchange内容发生改变事件
    				$(".updateCount").change(function () {
    					// 获取商品名称
    					var name = $(this).parent().parent().find("td:first").text();
    					var id = $(this).attr('bookId');
    					// 获取商品数量
    					var count = this.value;
    					if ( confirm("你确定要将【" + name + "】商品修改数量为:" + count + " 吗?") ) {
    						//发起请求。给服务器保存修改
    						location.href = "http://localhost:8080/book/cartServlet?action=updateCount&count="+count+"&id="+id;
    					} else {
    						// defaultValue属性是表单项Dom对象的属性。它表示默认的value属性值。
    						this.value = this.defaultValue;
    					}
    				});
    
    			});
    		</script>
    
    	</div>
    	
    	<div id="main">
    	
    		<table>
    			<tr>
    				<td>商品名称</td>
    				<td>数量</td>
    				<td>单价</td>
    				<td>金额</td>
    				<td>操作</td>
    			</tr>		
    			<c:if test="${empty sessionScope.cart.items}">
    				<%--如果购物车空的情况--%>
    				<tr>
    					<td colspan="5"><a href="index.jsp">亲,当前购物车为空!快跟小伙伴们去浏览商品吧!!!</a> </td>
    				</tr>
    			</c:if>
    			<c:if test="${not empty sessionScope.cart.items}">
    				<%--如果购物车非空的情况--%>
    				<c:forEach items="${sessionScope.cart.items}" var="entry">
    					<tr>
    						<td>${entry.value.name}</td>
    						<td>
    							<input class="updateCount" style=" 80px;"
    								   bookId="${entry.value.id}"
    								   type="text" value="${entry.value.count}">
    						</td>
    						<td>${entry.value.price}</td>
    						<td>${entry.value.totalPrice}</td>
    						<td><a class="deleteItem" href="cartServlet?action=deleteItem&id=${entry.value.id}">删除</a></td>
    					</tr>
    				</c:forEach>
    			</c:if>
    		</table>
    		<%--如果购物车非空才输出页面的内容--%>
    		<c:if test="${not empty sessionScope.cart.items}">
    			<div class="cart_info">
    				<span class="cart_span">购物车中共有<span class="b_count">${sessionScope.cart.totalCount}</span>件商品</span>
    				<span class="cart_span">总金额<span class="b_price">${sessionScope.cart.totalPrice}</span>元</span>
    				<span class="cart_span"><a id="clearCart" href="cartServlet?action=clear">清空购物车</a></span>
    				<span class="cart_span"><a href="orderServlet?action=createOrder">去结账</a></span>
    			</div>
    		</c:if>
    	
    	</div>
    
    
    	<%--静态包含页脚内容--%>
    	<%@include file="/pages/common/footer.jsp"%>
    
    
    </body>
    </html>
    
  • 相关阅读:
    Java实现 LeetCode 807 保持城市天际线 (暴力)
    ASP.NET关于书籍详情和删除的Demo(HttpHandler进行页面静态化[自动生成html网页]+Entity Framework通过类创建数据库+EF删查)
    ASP.NET关于书籍详情和删除的Demo(HttpHandler进行页面静态化[自动生成html网页]+Entity Framework通过类创建数据库+EF删查)...
    ASP.NET关于书籍详情和删除的Demo(HttpHandler进行页面静态化[自动生成html网页]+Entity Framework通过类创建数据库+EF删查)...
    Java实现 LeetCode 806 写字符串需要的行数 (暴力模拟)
    Java实现 LeetCode 806 写字符串需要的行数 (暴力模拟)
    Java实现 LeetCode 806 写字符串需要的行数 (暴力模拟)
    Java实现 LeetCode 805 数组的均值分割 (DFS+分析题)
    .net web api返回结果为json
    httpclient与webapi
  • 原文地址:https://www.cnblogs.com/linwei18159070920/p/14209295.html
Copyright © 2020-2023  润新知