基于javaweb+mysql的jsp+servlet花店商城系统(java+servlet+jsp+jdbc+mysql)
基于javaweb+mysql的jsp+servlet花店商城系统(java+servlet+jsp+jdbc+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet花店商城系统(java+servlet+jsp+jdbc+mysql)
项目介绍
网上花店销售系统采用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
使用说明
- 使用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
String sNowTime = dateFormatter.format(new java.util.Date());
imgpath = sNowTime+"."+ file.getFileExt();
file.saveAs("/uploadfile/"+imgpath);
}
} catch (SmartUploadException e) {
e.printStackTrace();
}
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
//更新对象属性
bean.setImgpath(imgpath);
//更新操作
productDao.updateBean(bean);
}
//删除商品信息操作
else if("productdelete".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
//删除对象
productDao.deleteBean(bean);
}
//推荐商品信息操作
else if("productdelete2".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
bean.setTuijian("已推荐");
productDao.updateBean(bean);
//插入数据库
productDao.insertBean(bean);
//返回给JSP页面
}
//跳转到更新商品信息页面
else if("productupdate".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
request.setAttribute("fenleilist", fenleiDao.getList(""));
//把信息传给jsp页面
request.setAttribute("bean", bean);
request.setAttribute("biaoti", "更新商品信息");
request.setAttribute("url", "manageServlet/productupdate2?id="+bean.getId());
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/product/productupdate.jsp");
dispatcher.forward(request, response);
}
//更新商品信息操作
else if("productupdate2".equals(method)){
//从JSP获取信息
String fenleiid = request.getParameter("fenleiid");
String imgpath = request.getParameter("imgpath");
String jiage = request.getParameter("jiage");
String miaoshu = request.getParameter("miaoshu");
String pname = request.getParameter("pname");
Fenlei fenlei = fenleiDao.selectBean(" where id= "+fenleiid);
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
//更新对象属性
bean.setFenleiid(fenlei.getId()+"");
bean.setFname(fenlei.getFname());
bean.setImgpath(imgpath);
bean.setJiage(Double.parseDouble(jiage));
bean.setMiaoshu(miaoshu);
bean.setPname(pname);
//更新操作
productDao.updateBean(bean);
}
//跳转到上传商品图片页面
else if("productupdate5".equals(method)){
//通过ID获取对象
//初始化跳转的地址
String url ="";
int pagenum = 1;//当前页
int pagesize = 15;//每页显示的数量
//初始化调用的数据库操作对象
UserDao userDao = new UserDao();
FenleiDao fenleiDao = new FenleiDao();
ProductDao productDao = new ProductDao();
GonggaoDao gonggaoDao = new GonggaoDao();
DingdanDao dingdanDao = new DingdanDao();
//用户登录
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);
}else{
}
}
//退出操作
else if("loginout".equals(method)){
HttpSession session =request.getSession();
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);
}
//跳转到添加商品信息页面
else if("productadd".equals(method)){
request.setAttribute("biaoti", "添加商品信息");
request.setAttribute("url", "manageServlet/productadd2");
request.setAttribute("fenleilist", fenleiDao.getList(""));
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/product/productadd.jsp");
dispatcher.forward(request, response);
}
//添加商品信息操作
else if("productadd2".equals(method)){
//从JSP获取信息
String fenleiid = request.getParameter("fenleiid");
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页面
}
//我的订单列表
else if("orderlist".equals(method)){
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页面
}
//我的订单列表
else if("orderlist".equals(method)){
//定义跳转的地址
url = "indexServlet/orderlist";
//获取查询的信息
String orderid = request.getParameter("orderid");
}
//修改密码操作
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);
}else{
}
}
//跳转到修改个人信息页面
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);
//返回给JSP页面
}
//我的订单列表
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){
//跳转到修改个人信息页面
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);
}
//跳转到查看商品详情页面
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);
dingdanDao.insertBean(bean);
//返回给JSP页面
}
//我的订单列表
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 id = request.getParameter("id");
Fenlei bean = fenleiDao.selectBean(" where id= "+id);
//更新对象属性
bean.setFname(fname);
//更新操作
fenleiDao.updateBean(bean);
}
//删除分类信息操作
else if("fenleidelete".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Fenlei bean = fenleiDao.selectBean(" where id= "+id);
//删除对象
fenleiDao.deleteBean(bean);
}
//跳转到查看分类信息页面
else if("fenleiupdate3".equals(method)){
request.setAttribute("biaoti", "查看分类信息");
//通过ID获取对象
String id = request.getParameter("id");
Fenlei bean = fenleiDao.selectBean(" where id= "+id);
//把对象传给jsp页面
request.setAttribute("bean", bean);
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/fenlei/fenleiupdate3.jsp");
dispatcher.forward(request, response);
}
//商品信息列表
else if("productlist".equals(method)){
//定义跳转的地址
url = "manageServlet/productlist";
//获取查询的信息
String fname = request.getParameter("fname");
}
//删除购买的商品操作
else if("gouwuchedelete".equals(method)){
String id = request.getParameter("id");
Gouwuche bean = gouwucheDao.selectBean(" where id= "+id);
gouwucheDao.deleteBean(bean);
}
//跳转到生成订单页面
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());
//把对象传给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) {
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){
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);
//后台servlet,用于处理后台的所有请求
public class ManageServlet 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)
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);
}
//添加公告信息操作
else if("gonggaoadd2".equals(method)){
//从JSP获取信息
String biaoti = request.getParameter("biaoti");
String neirong = request.getParameter("neirong");
//定义对象
Gonggao bean = new Gonggao();
//设置对象的属性
bean.setBiaoti(biaoti);
bean.setNeirong(neirong);
bean.setShijian(Util.getTime());
//插入数据库
gonggaoDao.insertBean(bean);
//返回给JSP页面
}
//跳转到更新公告信息页面
else if("gonggaoupdate".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
//把对象传给jsp页面
request.setAttribute("bean", bean);
request.setAttribute("biaoti", "更新公告信息");
request.setAttribute("url", "manageServlet/gonggaoupdate2?id="+bean.getId());
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaoupdate.jsp");
dispatcher.forward(request, response);
}
//更新公告信息操作
else if("gonggaoupdate2".equals(method)){
//从JSP获取信息
String biaoti = request.getParameter("biaoti");
String neirong = request.getParameter("neirong");
//通过ID获取对象
}else{
}
}
//用户登录
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);
}else{
}
}
//退出操作
else if("loginout".equals(method)){
HttpSession session =request.getSession();
session.removeAttribute("user");
}
//修改密码操作
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);
}else{
}
//更新公告信息操作
else if("gonggaoupdate2".equals(method)){
//从JSP获取信息
String biaoti = request.getParameter("biaoti");
String neirong = request.getParameter("neirong");
//通过ID获取对象
String id = request.getParameter("id");
Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
//更新对象属性
bean.setBiaoti(biaoti);
bean.setNeirong(neirong);
//更新操作
gonggaoDao.updateBean(bean);
}
//删除公告信息操作
else if("gonggaodelete".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
//删除对象
gonggaoDao.deleteBean(bean);
}
//跳转到查看公告信息页面
else if("gonggaoupdate3".equals(method)){
request.setAttribute("biaoti", "查看公告信息");
//通过ID获取对象
String id = request.getParameter("id");
Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
//把对象传给jsp页面
request.setAttribute("bean", bean);
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaoupdate3.jsp");
dispatcher.forward(request, response);
}
//订单信息列表
else if("dingdanlist".equals(method)){
//定义跳转的地址
url = "manageServlet/dingdanlist";
//获取查询的信息