Jweb续-购物车小版本数据库版本+三层构架的前部分 登陆加注册(后部分后续........)

1.开发模式:分层

我们所学的开发模式分为3层:

:数据访问层

:业务逻辑层

:视图层


它们间的调用关系:

数据访问层

业务逻辑层调用数据访问层

:视图层:调用业务逻辑层

我们的疑惑来了,那么视图层可以直接调用数据访问层嘛?

实践是可以的,但理论上是不可以的。

2.步骤

1、创建项目
2、创建包:
    com.zking.util    帮助类
    com.zking.entity  实体类
    com.zking.dao(放dao接口)
    com.zking.dao.imp    (放dao接口实现类)
    com.zking.biz (业务逻辑层放dao方法)
    com.zking.biz.imp(业务逻辑层放dao实现类)

3.创建表:

用户表(T277)
字段数据类型约束备注
uuidnumber主键用户编号
unamevarchar2(20)用户名称
upwdvarchar2(20)用户密码
uinfovarchar2(20)用户介绍
商品表(goods)
字段数据类型约束备注
bidnumber主键商品编号
bnamenumber商品名称
bpricenumber商品价格
binfovarchar2(20)商品介绍
bfacevarchar2(20)商品图片
订单表(orderitem)
字段数据类型约束备注
oidnumber主键订单编号
uuidnumber外键用户编号
bidnumber外键商品编号
gnumbernumber商品数量
gsumpricenumber订单总价
odatedate下单时间
oztvarchar2(20)订单状态

4.创建jsp文件

index.jsp 总界面

login.jsp

dologin.jsp

register.jsp

doregister.jsp

3.代码实操:(只献 jsp文件)

index.jsp

<%@page import="com.zking.entity.User"%>
<%@page import="com.zking.biz.Imp_GoodsDaoBiz"%>
<%@page import="com.zking.dao.Imp_GoodsDao"%>
<%@page import="com.zking.dao.IGoodsDao"%>
<%@page import="com.zking.entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>商品主界面</title>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript">
	function gm(bid,uid) {
		location.href="doShopCar.jsp?bid="+bid+"&uid="+uid;
	}
</script>

</head>
<body>
	<%
	Object o=session.getAttribute("u");
	if(o==null){
		out.print("<script>alert('你还未登录,请登录');location.href='login.jsp'</script>");

	}
	%>
<table class="table table-hover">
  <tr>
    <td>商品编号</td>
    <td>商品名称</td>
    <td>商品价格</td>
    <td>商品介绍</td>
    <td>商品图片</td>
    <td>操作</td>
  </tr>
  <%
 
 
 
  ArrayList<Goods> slist=new Imp_GoodsDaoBiz().getAll();
  for(int i=1;i<slist.size();i++){
	  
  %>
  <tr>
    <td><%=slist.get(i).getGid()%></td>
    <td><%=slist.get(i).getGname()%></td>
    <td><%=slist.get(i).getGprice()%></td>
    <td><%=slist.get(i).getGinfo()%></td>
    <td>
    <img src="<%=slist.get(i).getGpic()%>">
    </td>
    <td>
    <button onclick="gm(<%=slist.get(i).getGid()%>,<%=((User)session.getAttribute("u")).getUid()%>)"  class="btn btn-success">添加到购物车</button>
    </td>
  </tr>
  
  <%}%>

</table>

</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
<script type="text/javascript">
//定义字符串,在0-9出随机数
	var str = "1234567890";
//验证功能
	function yz() {
		//随机出4个0-字符串长度之间的数字 做为下标
		//先定义为空
		yzmStr="";
	//	循环遍历出随机数
		for(var i=1;i<=4;i++){
			yzmStr+=str.substr(Math.round(Math.random()*(str.length-1)),1);
		
		}
		//把验证码赋值到页面
		document.getElementById("syzm").innerHTML=yzmStr;
	}
	
	//返回id值函数
	function $(id) {
		return document.getElementById(id);
	}
	//验证 用户名 和 密码功能
	function login_yz() {
		//验证 用户名 和 密码不能为空 
		//获取用户名
		var uname = $("uname").value;	
		//判断
		if(uname.length==0){
			alert("用户名不能为空");
			return false;
		}
		//获取密码
		var upwd = $("upwd").value;
		if(upwd.length==0){
			alert("密码不能为空");
			return false;
		}
		
		//获取验证码:判断和电脑的验证码是否相等
		
		var yzm = $("uyzm").value;
		if(yzm!=yzmStr){
			alert("验证码输入错误,请重新输入");
			//清空输入的验证码
			$("uyzm").value="";
			//重新生成验证码
			yz();
			return false;
		}
		
	}


</script>


</head>


<body onload="yz()">

	

			
			<form action="dologin.jsp" onsubmit="return login_yz()">
				<div id="user">
					用 户 <input type="text" id="uname" name="textfield"/>
				</div>
				<div id="password">
					密 码 <input type="password" id="upwd" name="textfield1" />
				</div>
				
				<div id="yzm">
					
					验证码 <input id="uyzm" style="width: 50px;" type="text" name="textfield3" />
					<span id="syzm" onclick="yz()"></span>
				</div>
				<div id="btn">
					<input type="submit" value="登录">
					<input type="reset" value="清空">
				</div>
			</form>
			

	
</body>
</html>

dologin.jsp

<%@page import="com.zking.entity.User"%>
<%@page import="com.zking.biz.Imp_UserDaoBiz"%>
<%@page import="com.zking.dao.Imp_GoodsDao"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	
	//接收login页面传递的数据
	String uname=request.getParameter("textfield");
	String upwd = request.getParameter("textfield1");

	User u=new Imp_UserDaoBiz().login(uname, upwd);
			

	//处理结果
	if(u!=null){
		//转发
		session.setAttribute("u", u);
		//把用户编号放到内置对象 session中
		//session.setAttribute("uuid", rs.getInt(1));
		request.getRequestDispatcher("index.jsp").forward(request, response);
	
	}else{
		//失败
		out.print("<script>alert('用户名或密码错误,请重新登录');location.href='login.jsp'</script>");
	}
	//关闭连接
	 %>

</body>
</html>

register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
<script type="text/javascript">
//定义字符串,在0-9出随机数
	var str = "1234567890";
//验证功能
	function yz() {
		//随机出4个0-字符串长度之间的数字 做为下标
		//先定义为空
		yzmStr="";
	//	循环遍历出随机数
		for(var i=1;i<=4;i++){
			yzmStr+=str.substr(Math.round(Math.random()*(str.length-1)),1);
		
		}
		//把验证码赋值到页面
		document.getElementById("syzm").innerHTML=yzmStr;
	}
	
	//返回id值函数
	function $(id) {
		return document.getElementById(id);
	}
	//验证 用户名 和 密码功能
	function login_yz() {
		//验证 用户名 和 密码不能为空 
		//获取用户名
		var uname = $("uname").value;	
		//判断
		if(uname.length==0){
			alert("用户名不能为空");
			return false;
		}
		//获取密码
		var upwd = $("upwd").value;
		if(upwd.length==0){
			alert("密码不能为空");
			return false;
		}
		
		//获取验证码:判断和电脑的验证码是否相等
		
		var yzm = $("uyzm").value;
		if(yzm!=yzmStr){
			alert("验证码输入错误,请重新输入");
			//清空输入的验证码
			$("uyzm").value="";
			//重新生成验证码
			yz();
			return false;
		}
		
	}


</script>


</head>


<body onload="yz()">

	

			
			<form action="doregister.jsp" onsubmit="return login_yz()">
				<div id="user">
					用 户 <input type="text" id="uname" name="textfield"/>
				</div>
				<div id="password">
					密 码 <input type="password" id="upwd" name="textfield1" />
				</div>
				
				<div id="yzm">
					
					验证码 <input id="uyzm" style="width: 50px;" type="text" name="textfield3" />
					<span id="syzm" onclick="yz()"></span>
				</div>
				<div id="btn">
					<input type="submit" value="注册">
					<input type="reset" value="清空">
				</div>
			</form>
			

	
</body>
</html>

doregister.jsp

<%@page import="com.sun.xml.internal.bind.v2.runtime.Location"%>
<%@page import="com.zking.entity.User"%>
<%@page import="com.zking.biz.Imp_UserDaoBiz"%>
<%@page import="com.zking.dao.Imp_GoodsDao"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<%
	
	//接收login页面传递的数据
	String uname=request.getParameter("textfield");
	String upwd = request.getParameter("textfield1");
	int id=new Imp_UserDaoBiz().getNext("auid", "auser");
	User user=new User(id,uname,upwd);
	boolean f=new Imp_UserDaoBiz().register(user);
			

	//处理结果
	if(f==true){
		//转发
//	  session.setAttribute("us", user);
		//把用户编号放到内置对象 session中
		//session.setAttribute("uuid", rs.getInt(1));
	out.print("<script>alert('注册成功!');location.href='login.jsp'</script>");

		
	}else{
		//失败
		out.print("<script>alert('注册失败!');location.href='register.jsp'</script>");
	}
	//关闭连接
	 %>

</body>
</html>

我们要实现的是:一个用户对应一个购物车,现在是登录与注册,后续加代码。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值