基于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
//添加公告信息操作
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获取对象
String id = request.getParameter("id");
Gonggao bean = gonggaoDao.selectBean(" where id= "+id);
//更新对象属性
bean.setBiaoti(biaoti);
bean.setNeirong(neirong);
//更新操作
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 ");
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"));
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<Gonggao>> map = gonggaoDao.getList(pagenum,pagesize,url,where);
String pagerinfo = map.keySet().iterator().next();
List<Gonggao> list = map.get(pagerinfo);
//返回给jsp页面的信息
request.setAttribute("pagerinfo", pagerinfo);
request.setAttribute("list", list);
request.setAttribute("biaoti", "公告信息列表");
request.setAttribute("url", "manageServlet/gonggaolist");
request.setAttribute("url2", "manageServlet/gonggao");
//定义跳转的地址
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaolist.jsp");
//跳转操作
dispatcher.forward(request, response);
}
//跳转到添加公告信息页面
else if("gonggaoadd".equals(method)){
request.setAttribute("biaoti", "添加公告信息");
request.setAttribute("url", "manageServlet/gonggaoadd2");
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaoadd.jsp");
dispatcher.forward(request, response);
}
//添加公告信息操作
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页面
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);
}
//我的购物车列表
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);
request.setAttribute("biaoti", "公告信息列表");
request.setAttribute("url", "manageServlet/gonggaolist");
request.setAttribute("url2", "manageServlet/gonggao");
//定义跳转的地址
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaolist.jsp");
//跳转操作
dispatcher.forward(request, response);
}
//跳转到添加公告信息页面
else if("gonggaoadd".equals(method)){
request.setAttribute("biaoti", "添加公告信息");
request.setAttribute("url", "manageServlet/gonggaoadd2");
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/gonggao/gonggaoadd.jsp");
dispatcher.forward(request, response);
}
//添加公告信息操作
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", "更新公告信息");
}
//跳转到查看商品详情页面
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) {
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 ;
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);
}
//删除商品信息操作
else if("productdelete3".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
bean.setTuijian("未推荐");
productDao.updateBean(bean);
}
//跳转到查看商品信息页面
else if("productupdate3".equals(method)){
request.setAttribute("biaoti", "查看商品信息");
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
//把对象传给jsp页面
request.setAttribute("bean", bean);
RequestDispatcher dispatcher = request.getRequestDispatcher("/manage/product/productupdate3.jsp");
dispatcher.forward(request, response);
}
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);
}
//删除商品信息操作
else if("productdelete3".equals(method)){
//通过ID获取对象
String id = request.getParameter("id");
Product bean = productDao.selectBean(" where id= "+id);
bean.setTuijian("未推荐");
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");
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);
bean.setFname(fenlei.getFname());
bean.setJiage(Double.parseDouble(jiage));
bean.setMiaoshu(miaoshu);
bean.setPname(pname);
bean.setTuijian("未推荐");
bean.setXiaoliang(0);
//插入数据库
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获取对象
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);
}
//我的购物车列表
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"));
//我的购物车列表
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");
//跳转操作
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);
}else{
}
}
//用户登录
else if("login".equals(method)){
//从jsp页面获取用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
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();
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);
}
//我的购物车列表
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);
//后台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)
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");
//获取输出对象
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);
}
}