Java项目:JSP网上花店销售系统

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

网上花店销售系统采用JSP+Servlet+JavaBean的MVC模式,将数据对象、业务逻辑以及用户界面分离。该系统分为用户和管理员两个角色。用户注册登录后可以浏览鲜花,浏览公告,购买鲜花,管理员登录后可以对系统进行管理和维护。

由于本程序规模不大,可供课程设计,毕业设计学习演示之用。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目: 否;

技术栈

Servlet、JSP、JDBC、MySQL5.7、Tomcat8

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,然后运行;
3. 将项目中src/com/dao/DB.java配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入地址;

前台地址:http://localhost:8080/flowerstore/
普通社员账号:zhangsan  密码:123456  

后台地址:http://localhost:8080/flowerstore/manage/login.jsp
管理员账号:admin  密码:123456

运行截图

用户角色

管理员界面

相关代码 

管理端控制器

//后台servlet,用于处理前台的所有请求
public class IndexServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		super.init(config);
	}
	
	
	public void destroy() {
		
		super.destroy();
	}


	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//设置获取的参数的编码格式
		request.setCharacterEncoding("utf-8");
		
		//获取绝对地址
		String path = request.getContextPath();
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
		//设置响应输出的字符串格式
		response.setCharacterEncoding("utf-8");response.setContentType("text/html; charset=utf-8");
		//获取输出对象
		PrintWriter writer = response.getWriter();
		//获取页面请求地址
		String uri = request.getRequestURI();	
		String[] s = uri.split("/");
		String method = s[3];
		
		//初始化跳转的地址
		String url ="";
		
		int pagenum =  1;//当前页
		int pagesize = 15;//每页显示的数量
		
		
		//初始化调用的数据库操作对象
		UserDao userDao = new UserDao();
		
		ProductDao productDao = new ProductDao();
		
		GonggaoDao gonggaoDao = new GonggaoDao();
		
		GouwucheDao gouwucheDao = new GouwucheDao();
		
		DingdanDao dingdanDao = new DingdanDao();
		
		//新用户注册
		if("register".equals(method)){
			//从jsp页面获取用户名和密码
			String username =  request.getParameter("username");
			String password =  request.getParameter("password");
			String xingming =  request.getParameter("xingming");
			String dianhua =  request.getParameter("dianhua");
			String dizhi =  request.getParameter("dizhi");
			//查询该用户名是否已经注册
			User bean = userDao.selectBean(" where username='"+username+"' ");
			if(bean==null){
				bean = new User();
				bean.setDianhua(dianhua);
				bean.setDizhi(dizhi);
				bean.setPassword(password);
				bean.setRole(0);
				bean.setUsername(username);
				bean.setXingming(xingming);
				userDao.insertBean(bean);

				writer.print("<script language='javascript'>alert('注册成功,请妥善保管您的账户');window.location.href='"+basePath+"login.jsp'; </script>");
			}else{
				
				writer.print("<script  language='javascript'>alert('该用户名已经被注册,请重新注册!');window.location.href='"+basePath+"register.jsp';</script>");
			}
		}
		
		//用户登录
		else 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=0 ");
			if(bean!=null){
				HttpSession session = request.getSession();
				session.setAttribute("user", bean);
				
				writer.print("<script language='javascript'>alert('登录成功');window.location.href='"+basePath+".'; </script>");
			}else{
				
				writer.print("<script  language='javascript'>alert('用户名或者密码错误');window.location.href='"+basePath+"login.jsp';</script>");
			}
		}
		
		//退出操作
		 else if("loginout".equals(method)){
			
			 HttpSession session  =request.getSession();
			 session.removeAttribute("user");
			 writer.print("<script  language='javascript'>alert('退出成功');window.location.href='"+basePath+".';</script>");

		}

				//修改密码操作
		else if("passwordupdate2".equals(method)){
					
					//从JSP获取信息
					String password1 = request.getParameter("password1");
					String password2 = request.getParameter("password2");
					HttpSession session = request.getSession();
					User user = (User)session.getAttribute("user");
					
					User u = userDao.selectBean(" where username='"+user.getUsername()+"' and password='"+password1+"'  ");
					if(u!=null){
						u.setPassword(password2);
						userDao.updateBean(u);
						writer.print("<script  language='javascript'>alert('操作成功');window.location.href='"+basePath+"passwordupdate.jsp'; </script>");
					}else{
						writer.print("<script  language='javascript'>alert('操作失败,原密码错误!');window.location.href='"+basePath+"passwordupdate.jsp'; </script>");
					}
					
					
					
		}
		
		
		//跳转到修改个人信息页面
		else if("userupdate".equals(method)){
			
			//通过ID获取对象
			HttpSession session = request.getSession();
			User user = (User)session.getAttribute("user");
			User bean = userDao.selectBean(" where id= "+user.getId());
			//把对象传给jsp页面
			request.setAttribute("bean", bean);
			request.setAttribute("url", "indexServlet/userupdate2?id="+bean.getId());
			RequestDispatcher dispatcher = request.getRequestDispatcher("/userupdate.jsp");
			dispatcher.forward(request, response);
		}
		
		//修改个人信息操作
		else if("userupdate2".equals(method)){
			
			//从JSP获取信息
			String xingming =  request.getParameter("xingming");
			String dianhua =  request.getParameter("dianhua");
			String dizhi =  request.getParameter("dizhi");
			//通过ID获取对象
			String id = request.getParameter("id");
			User bean = userDao.selectBean(" where id= "+id);
			//更新对象属性
			bean.setXingming(xingming);
			bean.setDianhua(dianhua);
			bean.setDizhi(dizhi);
			//更新操作
			userDao.updateBean(bean);
			
			
			writer.print("<script  language='javascript'>alert('操作成功');window.location.href='"+basePath+"indexServlet/userupdate'; </script>");
		}
		
		//跳转到查看商品详情页面
		else if("productupdate".equals(method)){
			
			//通过ID获取对象
			String id = request.getParameter("id");
			Product bean = productDao.selectBean(" where id= "+id);
			//把对象传给jsp页面
			bean.setDianjishu(bean.getDianjishu()+1);
			productDao.updateBean(bean);
			request.setAttribute("bean", bean);
			RequestDispatcher dispatcher = request.getRequestDispatcher("/product.jsp");
			dispatcher.forward(request, response);
		}
		
		//跳转到查看公告页面
		else if("gonggaoupdate".equals(method)){
			
			//通过ID获取对象
			String id = request.getParameter("id");
			Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
			//把对象传给jsp页面
			request.setAttribute("bean", bean);
			RequestDispatcher dispatcher = request.getRequestDispatcher("/gonggao.jsp");
			dispatcher.forward(request, response);
		}
		
		//添加商品到购物车操作
		else if("gouwucheadd2".equals(method)){

			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			if (user == null) {
				writer.print("<script  language='javascript'>alert('请先登录');window.location.href='"+basePath+"login.jsp';</script>");
				return  ;
			}
			
			Product pro = productDao.selectBean(" where id= "+request.getParameter("pid"));
			
			Gouwuche bean = gouwucheDao.selectBean(" where userid="+user.getId()+" and pid="+pro.getId()+" ");
			if(bean!=null){
				writer.print("<script  language='javascript'>alert('该商品已经添加到购物车,请勿重复添加');window.location.href='"+basePath+"indexServlet/gouwuchelist';</script>");
				return  ;
			}
			bean = new Gouwuche();
			bean.setJiage(pro.getJiage());
			bean.setPid(pro.getId());
			bean.setPname(pro.getPname());
			bean.setShuliang(1);
			bean.setUserid(user.getId());
			
			gouwucheDao.insertBean(bean);
			
			writer.print("<script  language='javascript'>alert('添加成功');window.location.href='"+basePath+"indexServlet/gouwuchelist';</script>");
			
		}
		
		
		//我的购物车列表
		else if("gouwuchelist".equals(method)){
			
			//定义跳转的地址
			url = "indexServlet/gouwuchelist";
			

			
			//组装查询的SQL语句
			StringBuffer sb = new StringBuffer();
			sb.append(" where  ");
			
			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			
			sb.append(" userid="+user.getId()+" order by id desc ");
			String where = sb.toString();

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

			//从数据库查询列表信息,带分页功能
			Map<String,List<Gouwuche>> map = gouwucheDao.getList(1,999,url,where);
			String pagerinfo = map.keySet().iterator().next();
			List<Gouwuche> list = map.get(pagerinfo);
			
			//返回给jsp页面的信息
			request.setAttribute("pagerinfo", pagerinfo);
			request.setAttribute("list", list);

			double zongjia = 0;
			for(Gouwuche g:list){
				zongjia = zongjia+(g.getJiage()*g.getShuliang());
			}
			request.setAttribute("zongjia", zongjia);
			
			//定义跳转的地址
			RequestDispatcher dispatcher = request.getRequestDispatcher("/gouwuchelist.jsp");
			//跳转操作
			dispatcher.forward(request, response);
		}
		
		
		//修改购物商品数量操作
		else if("gouwucheupdate2".equals(method)){

			String id = request.getParameter("id");
			String number = request.getParameter("number");
			
			Gouwuche bean = gouwucheDao.selectBean(" where id= "+id);
			
			
			bean.setShuliang(Integer.parseInt(number));

			gouwucheDao.updateBean(bean);
			
			writer.print("<script  language='javascript'>alert('变更成功');window.location.href='"+basePath+"indexServlet/gouwuchelist';</script>");
			
		}
		
		
		//删除购买的商品操作
		else if("gouwuchedelete".equals(method)){

			String id = request.getParameter("id");

			Gouwuche bean = gouwucheDao.selectBean(" where id= "+id);

			gouwucheDao.deleteBean(bean);
			
			writer.print("<script  language='javascript'>alert('删除成功');window.location.href='"+basePath+"indexServlet/gouwuchelist';</script>");
			
		}
		
		
		//跳转到生成订单页面
		else if("dingdanadd".equals(method)){
			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			
			User bean = userDao.selectBean(" where id= "+user.getId());
			
			
			request.setAttribute("bean", bean);
			
			RequestDispatcher dispatcher = request.getRequestDispatcher("/dingdanadd.jsp");
			dispatcher.forward(request, response);
		}
		
		//生成订单操作
		else if("dingdanadd2".equals(method)){

			
			//从JSP获取信息
			String userid = request.getParameter("userid");
			String xingming = request.getParameter("xingming");
			String dianhua = request.getParameter("dianhua");
			String dizhi = request.getParameter("dizhi");
			String beizhu = request.getParameter("beizhu");
			
			Dingdan bean = new Dingdan();
			
			bean.setBeizhu(beizhu);
			bean.setDianhua(dianhua);
			bean.setDizhi(dizhi);
			bean.setOrderid(Util.getTime2());
			bean.setShijian(Util.getTime());
			bean.setStatus("未处理");
			bean.setUserid(Integer.parseInt(userid));
			bean.setXingming(xingming);
		
			
			//组装查询的SQL语句
			StringBuffer sb = new StringBuffer();
			sb.append(" where  ");
			
			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			
			sb.append(" userid="+user.getId()+" order by id desc ");
			String where = sb.toString();

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

			//从数据库查询列表信息,带分页功能
			Map<String,List<Gouwuche>> map = gouwucheDao.getList(1,999,url,where);
			String pagerinfo = map.keySet().iterator().next();
			List<Gouwuche> list = map.get(pagerinfo);
			
			StringBuffer sbsb = new StringBuffer();
			double zongjia = 0;
			for(Gouwuche g:list){
				sbsb.append("商品名:"+g.getPname()+",单价:"+g.getJiage()+",购买数量:"+g.getShuliang()+",小计:"+(g.getJiage()*g.getShuliang())+"<br/>");
				zongjia = zongjia+(g.getJiage()*g.getShuliang());
				
				Product p  =productDao.selectBean(" where id= "+g.getPid());
				p.setXiaoliang(p.getXiaoliang()+g.getShuliang());
				productDao.updateBean(p);
				
				gouwucheDao.deleteBean(g);
				
				
			}
			bean.setZongjia(zongjia);
			bean.setXiangqing(sbsb.toString());
			
			
			dingdanDao.insertBean(bean);
			
			//返回给JSP页面
			writer.print("<script  language='javascript'>alert('操作成功');window.location.href='"+basePath+"indexServlet/orderlist'; </script>");
		}
		
		
		//我的订单列表
		else if("orderlist".equals(method)){
			
			//定义跳转的地址
			url = "indexServlet/orderlist";
			
			//获取查询的信息
			
			String orderid = request.getParameter("orderid");		
			String status = request.getParameter("status");		
			
			//组装查询的SQL语句
			StringBuffer sb = new StringBuffer();
			sb.append(" where  ");
			
			if(orderid!=null&&!"".equals(orderid)){
							
				sb.append(" orderid like '%"+orderid+"%' ");
				sb.append(" and ");
				
				request.setAttribute("orderid", orderid);
			}
			
			if(status!=null&&!"".equals(status)){
				
				sb.append(" status like '%"+status+"%' ");
				sb.append(" and ");
				
				request.setAttribute("status", status);
			}
			
	
			
			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			
			sb.append(" userid="+user.getId()+" order by id desc ");
			String where = sb.toString();

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

			//从数据库查询列表信息,带分页功能
			Map<String,List<Dingdan>> map = dingdanDao.getList(pagenum,pagesize,url,where);
			String pagerinfo = map.keySet().iterator().next();
			List<Dingdan> list = map.get(pagerinfo);
			
			//返回给jsp页面的信息
			request.setAttribute("pagerinfo", pagerinfo);
			request.setAttribute("list", list);

			
			
			
			//定义跳转的地址
			RequestDispatcher dispatcher = request.getRequestDispatcher("/orderlist.jsp");
			//跳转操作
			dispatcher.forward(request, response);
		}
		
		
		//跳转查看订单详情页面
		else if("dingdanupdate3".equals(method)){
			
			
			Dingdan bean = dingdanDao.selectBean(" where id= "+request.getParameter("id"));
			
			
			request.setAttribute("bean", bean);
			
			RequestDispatcher dispatcher = request.getRequestDispatcher("/dingdanupdate3.jsp");
			dispatcher.forward(request, response);
		}
		
		
	}
	
	
	

}

首页管理控制器

//首页Servlet
public class ShouyeServlet extends HttpServlet {
	
	

	
	private static final long serialVersionUID = 1L;
	
	
	
	public void init(ServletConfig config) throws ServletException {

		super.init(config);
	}
	
	
	public void destroy() {
		
		super.destroy();
	}


	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//设置获取的参数的编码格式
		request.setCharacterEncoding("utf-8");
		
		//分页页数定义
		int pagenum =1;//当前页
		int pagesize = 10;//每页显示的数量
		
		ProductDao ProductDao = new ProductDao();
		
	
		
		
		String pname = request.getParameter("pname");	
		String fenleiid = request.getParameter("fenleiid");	
		String tuijian = request.getParameter("tuijian");
		String jiage1 = request.getParameter("jiage1");
		String jiage2 = request.getParameter("jiage2");
		
		String url = "shouye";
		
		if(request.getParameter("pagenum")!=null){
			pagenum = Integer.parseInt(request.getParameter("pagenum"));
		}
		StringBuffer sb = new StringBuffer();
		sb.append(" where  ");
		
		if(jiage1!=null&&!"".equals(jiage1)){
			
			
			sb.append(" jiage >= "+jiage1+"");
			sb.append(" and ");
			
			request.setAttribute("jiage1", jiage1);
		}
		
		if(jiage2!=null&&!"".equals(jiage2)){
			
			
			sb.append(" jiage <= "+jiage2+"");
			sb.append(" and ");
			
			request.setAttribute("jiage2", jiage2);
		}
		
		if(pname!=null&&!"".equals(pname)){
			
			
			sb.append(" pname like '%"+pname+"%' ");
			sb.append(" and ");
			
			request.setAttribute("pname", pname);
		}
		
		if(fenleiid!=null&&!"".equals(fenleiid)){
			
			
			sb.append(" fenleiid like '%"+fenleiid+"%' ");
			sb.append(" and ");
			
			request.setAttribute("fenleiid", fenleiid);
		}
		
		if(tuijian!=null&&!"".equals(tuijian)){
			
			
			sb.append(" tuijian = '已推荐' ");
			sb.append(" and ");
			
			request.setAttribute("tuijian", tuijian);
		}

		
		sb.append(" 1=1  order by id desc ");
		String where = sb.toString();


		Map<String,List<Product>> map = ProductDao.getList(pagenum,pagesize,url,where);

		String pagerinfo = map.keySet().iterator().next();
		List<Product> list = map.get(pagerinfo);
		

		request.setAttribute("pagerinfo", pagerinfo);
		request.setAttribute("list", list);

		
		RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
		dispatcher.forward(request, response);
		
		
		
		
	}

}

如果也想学习本系统,下面领取。关注并回复:133jsp


版权声明:本文为hanyunlong1989原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。