作者主页:夜未央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

Java项目:JSP网上花店销售系统相关推荐

  1. Java、JSP网上花店销售系统

    技术:Java.JSP等 摘要: 随着社会的不断发展,科学技术的巨浪正以飞的速度向前迈进,不断的改写人们的生活.网络作为新型的科技工具,应用与各行各业,特别是在90年代用于商业后,给商界带来了翻天覆地 ...

  2. Java、JSP网上宠物服饰销售系统

    技术:Java.JSP等 摘要: 科学技术日新月异的进步让生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机的应用上得到了广泛的普及和使用.因此,网上宠物服饰购买以方便.快捷.费用低的优点 ...

  3. java毕业设计——基于java+Servlet+jsp的网上花店销售系统设计与实现(毕业论文+程序源码)——网上花店销售系统

    基于java+Servlet+jsp的网上花店销售系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Servlet+jsp的网上花店销售系统设计与实现,文章末尾附有本毕业设计的 ...

  4. MVC 网上花店销售系统的设计与实现java jsp 程序设计 课程设计 毕业设计-附源码02140

    因上传问题  只上传了文案 图片未上传  点赞+收藏+关注  →  私信领取本源代码.数据库 网上花店销售系统的设计与实现 摘  要 随着时代的快速发展,我们的生活已经离不开计算机网络,而电子商务的快 ...

  5. 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)

    摘要 随着时代的快速发展,我们的生活已经离不开计算机网络,而电子商务的快速发展正在改变着人们的生活方式.随着各种网上购物平台的不断兴起,人们早已习惯了不用出门就买到自己需要的东西.但是针对鲜花销售这方 ...

  6. 网上花店销售系统(附源码+课件+讲解+资料+数据库)

    背景 鲜花销售行业最初是鲜花销售商个体进行实体销售,后来经过发展形成了鲜花进入批发市场再进行分销的形式.传统的鲜花销售模式是以实体花店为主体,直到后来由于网络的迅速发展,电子商务的介入使鲜花销售发生了 ...

  7. 【附源码】计算机毕业设计SSM网上花店销售系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. 基于java的网上花店销售系统_基于web的花店销售系统的设计与实现

    基于web的花店销售系统的设计与实现(论文13000字) 摘要:本系统是一个相对简单的基本应用系统,主要满足传统的花店运营需要,将自己的销售渠道扩展到网上,通过简单的管理,提供给最终消费者产品的展现. ...

  9. 基于java的网上花店销售系统_基于JAVA的鲜花销售系统(含全套CAD图纸).doc

    基于JAVA的鲜花销售系统(含全套CAD图纸) 编号 太湖学院 毕业设计(论文) 题目: 信机 系 专业 学 号: 学生姓名: 指导教师: 201年5月2日太湖学院本科毕业设计(论文) 诚 信 承 诺 ...

最新文章

  1. 加载服务器版本信息,传奇服务器端启动加载错误的解决方法
  2. Swift 本地推送通知UILocalNotification
  3. JAVA中类的访问修饰符的作用范围
  4. hadoop环境搭建之伪分布集群环境搭建(单节点)
  5. nginx 配置静态文件目录_nginx缓存静态资源,只需几个配置提升10倍页面加载速度...
  6. Android Day05-网络编程之文件上传
  7. Windows部署服务WDS实例
  8. 明晚直播丨基于IB网络的Oracle Extend RAC最佳实践
  9. 趁618买iPhone 11还是等iPhone 12?李楠有话要说
  10. 【Guava】对Guava类库的注释类型 VisibleForTesting的理解
  11. 另一种阶乘 函数法!
  12. JAVA虚拟机环境如何在IMX6平台上搭建呢?
  13. ZigBee学习之NXP JN5169开发环境搭建
  14. 快速查找某个范围内的所有素数
  15. ILI9341的使用之【五】命令一
  16. python中可迭代对象是什么意思_python可迭代对象概念讲解
  17. 手机上怎么将图片转换成PDF
  18. LC滤波器的截止频率公式
  19. 融金所孙明达:“科技+政策”双轮驱动普惠金融
  20. arduino步進電機_Arduino电机驱动器说明

热门文章

  1. excel表格如何设置下拉选项?
  2. 简单的页面背景设计(001)
  3. class01:小程序简介
  4. python中islower()、isupper()、istitle()函数的用法详解
  5. 联想linux电脑开机黑屏怎么办,联想开机黑屏怎么办_联想电脑开机后黑屏如何解决-win7之家...
  6. NCC2005实现Servlet接口访问
  7. 第1章程序设计和C语言
  8. HC030N10L 100V 30A TO-252 贴片 电弧打火机MOS管方案
  9. Vue——中国标准时间转化为年月日时分秒
  10. 实施ERP:将管理理念数据化(转)