购物网站的开发

项目以MYSQL作为数据库,使用JAVA语言开发,页面采取JSP动态页面开发技术。购物网站包括包括系统管理员和用户2个用户角色
管理员主要功能包括商品管理,注册用户管理,网站公告管理,订单管理
用户的功能主要有注册登录功能,商品浏览功能,包括分类浏览,推荐浏览,搜索浏览,排行榜浏览,公告浏览,购物车管理,订单管理。

项目功能需求分析图

管理员的功能图
用户的功能图

1.系统登录页面
在这里插入图片描述

代码:
//用户登录
if(“login”.equals(method)){
//从jsp页面获取用户名和密码
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
//查询用户名和密码是否匹配
User bean = userDao.selectBean(" where username=’"+username+"’ and password =’"+password+"’ and role=1 ");
if(bean!=null){
HttpSession session = request.getSession();
session.setAttribute(“manage”, bean);

			writer.print("<script language='javascript'>alert('登录成功');window.location.href='"+basePath+"manage/index.jsp'; </script>");
		}else{
			
			writer.print("<script  language='javascript'>alert('用户名或者密码错误');window.location.href='"+basePath+"manage/login.jsp';</script>");
		}
	}

本段代码是程序的登陆代码,首先从获取从页面输入的用户名、密码,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。

2、分类管理页面
在这里插入图片描述
对应的页面为fenleilist.jsp
代码:
//分类信息列表
else if(“fenleilist”.equals(method)){

		//定义跳转的地址
		url = "manageServlet/fenleilist";
		
		//获取查询的信息
		String fname = request.getParameter("fname");	
		
		//组装查询的SQL语句
		StringBuffer sb = new StringBuffer();
		sb.append(" where  ");
		
		if(fname!=null&&!"".equals(fname)){
						
			sb.append(" fname like '%"+fname+"%' ");
			sb.append(" and ");
			
			request.setAttribute("fname", fname);
		}
		sb.append(" 1=1 order by id desc ");
		String where = sb.toString();

		//获取当前的页数
		if(request.getParameter("pagenum")!=null){
			pagenum = Integer.parseInt(request.getParameter("pagenum"));
		}

		//从数据库查询列表信息,带分页功能
		Map<String,List<Fenlei>> map = fenleiDao.getList(pagenum,pagesize,url,where);
		String pagerinfo = map.keySet().iterator().next();
		List<Fenlei> list = map.get(pagerinfo);
		
		//返回给jsp页面的信息
		request.setAttribute("pagerinfo", pagerinfo);
		request.setAttribute("list", list);
		request.setAttribute("biaoti", "分类信息列表");
		request.setAttribute("url", "manageServlet/fenleilist");
		request.setAttribute("url2", "manageServlet/fenlei");
		
		
		
		//定义跳转的地址
		RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/fenlei/fenleilist.jsp");
		//跳转操作
		dispatcher.forward(request, response);
	}	

首先通过String fname = request.getParameter(“fname”);
这句代码从页面获取查询的选项,然后通过if(fname!=null &&!"".equals(fname)){通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer 来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过fenleiDao.getList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过RequestDispatcher request.getRequestDispatcher("/manage/fenlei/fenleilist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该分类列表页面定义了对分类信息的增加,修改,删除等操作。

3、商品信息管理页面
在这里插入图片描述
对应的JSP为productlist.jsp
代码:
//商品信息列表
else if(“productlist”.equals(method)){

		//定义跳转的地址
		url = "manageServlet/productlist";
		
		//获取查询的信息
		String fname = request.getParameter("fname");	
		request.setAttribute("fenleilist", fenleiDao.getList(""));
		String pname = request.getParameter("pname");	
		
		//组装查询的SQL语句
		StringBuffer sb = new StringBuffer();
		sb.append(" where  ");
		
		if(fname!=null&&!"".equals(fname)){
						
			sb.append(" fname like '%"+fname+"%' ");
			sb.append(" and ");
			
			request.setAttribute("fname", fname);
		}
		
		if(pname!=null&&!"".equals(pname)){
			
			sb.append(" pname like '%"+pname+"%' ");
			sb.append(" and ");
			
			request.setAttribute("pname", pname);
		}
		
		sb.append(" 1=1 order by id desc ");
		String where = sb.toString();

		//获取当前的页数
		if(request.getParameter("pagenum")!=null){
			pagenum = Integer.parseInt(request.getParameter("pagenum"));
		}

		//从数据库查询列表信息,带分页功能
		Map<String,List<Product>> map = productDao.getList(pagenum,pagesize,url,where);
		String pagerinfo = map.keySet().iterator().next();
		List<Product> list = map.get(pagerinfo);
		
		//返回给jsp页面的信息
		request.setAttribute("pagerinfo", pagerinfo);
		request.setAttribute("list", list);
		request.setAttribute("biaoti", "商品信息列表");
		request.setAttribute("url", "manageServlet/productlist");
		request.setAttribute("url2", "manageServlet/product");
		
		
		
		//定义跳转的地址
		RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/product/productlist.jsp");
		//跳转操作
		dispatcher.forward(request, response);
	}

首先通过
String fname = request.getParameter(“fname”);
String pname = request.getParameter(“pname”);
这3句代码从页面获取查询的选项,然后通过if(fname!=null &&!"".equals(fname)){、if(pname!=null &&!"".equals(pname))通过这2句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer 来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过productDao.getList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/product/productlist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该商品列表页面定义了对商品信息的增加,修改,删除等操作。

数据库表结构

1 订单表
名称 类型 空 备注
id int(11) no 主键
status varchar(255) yes 订单状态 已处理 未处理
userid int(11) yes 关联用户的ID 外键
xingming varchar(255) yes 收货人姓名
dianhua varchar(255) yes 收货人手机
dizhi varchar(255) yes 收货地址
xiangqing text yes 订单详情
orderid varchar(255) yes 订单号
beizhu varchar(255) yes 备注
shijian varchar(255) yes 生成时间
zongjia double yes 总价

2 分类表
名称 类型 空 备注
id int(11) no 主键
fname varchar(255) yes 分类名称

3 公告表
名称 类型 空 备注
id int(11) no 主键
biaoti varchar(255) yes 标题
neirong text yes 内容
shijian varchar(255) yes 添加时间

4 购物车表
名称 类型 空 备注
id int(11) no 主键
userid int(11) yes 关联的用户ID,外键
pid int(11) yes 关联的商品ID,外键
pname varchar(255) yes 商品名
jiage double yes 价格
shuliang int(11) yes 购买数量

5 商品表
名称 类型 空 备注
id int(11) no 主键
pname varchar(255) yes 商品名
imgpath varchar(255) yes 商品图片
createtime varchar(255) yes 上架时间
fenleiid varchar(255) yes 分类ID,外键
fname varchar(255) yes 分类名
jiage double yes 商品价格
tuijian varchar(255) yes 是否推荐 未推荐 已推荐
dianjishu int(11) yes 商品点击数
xiaoliang int(11) yes 商品销量
miaoshu text yes 商品介绍

6 用户表
名称 类型 空 备注
id int(11) no 主键
username varchar(255) yes 用户名
password varchar(255) yes 密码
xingming varchar(255) yes 姓名
role int(11) yes 用户角色 0表示用户 1表示管理员
dianhua varchar(255) yes 手机
dizhi varchar(255) yes 收货地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值