基于java web servlet生鲜商城管理系统源码含报告文档
(一)目的
电子商务的迅速兴起,网上购物也为人们的生活提供了极大的便利,不受时间和空间的限制.商城系统的兴起,扩大了消费市场的空间,对于大型企业来说,建设商城系统是正确的选择,不仅要扩大销售渠道,而且可以带动企业快速发展,商城系统如何建设?从商城系统建设的目的、购物中心系统的功能以及商城系统的相关规划等方面进行具体分析。
(二)意义
购物中心系统给人们的生活带来了巨大的变化,提高了消费水平,促进了经济的发展.然而,企业要想更好地发展,提高经济效益,就必须了解如何建立商城系统,以更好地发展和扩大企业规模.
(三)内容
企业在进行网站建设时,应了解商城系统的基本功能,以便更好地开发网站的后期建设.购物中心系统的基本功能包括:商品管理功能、订单管理功能、会员管理功能、在线支付功能、物品管理功能等。
为了成功构建商城系统,我们还应该为商城系统的建设做一个好的规划.当根据网站属性设计网页时,设计风格应符合用户的浏览习惯.产品的展示效果受网站结构和整体布局的影响.企业应选择与设计相结合的配色方案,使网站的设计与网站的整体风格保持一致。
(四)主要任务
商场系统为用户提供免费选择所需产品的服务功能,及时对新产品进行及时、及时的向用户提供产品和服务的信息交流平台,促进企业在市场上的发展,提升品牌形象.因此,企业在构建商城系统时,应明确其目的和建设网站的必要性.
演示视频:
【java源码】基于java web servlet生鲜商城管理系统源码含报告文档
部分截图:
package servlet.admin;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;import bean.Cake;
import bean.Catalog;
import bean.PageBean;
import bean.UpLoadImg;
import dao.CakeDao;
import dao.CatalogDao;
import dao.UpLoadImgDao;
import dao.impl.CakeDaoImpl;
import dao.impl.CatalogDaoImpl;
import dao.impl.UpLoadImgDaoImpl;
import util.RanUtil;import net.sf.json.JSONObject;/*** Servlet implementation class CakeManageServlet*/
@WebServlet("/jsp/admin/CakeManageServlet")
public class CakeManageServlet extends HttpServlet {private static final long serialVersionUID = 1L;private static final String BOOKLIST_PATH = "cakeManage/cakeList.jsp";// 商品列表页面地址private static final String BOOKADD_PATH = "cakeManage/cakeAdd.jsp";// 商品增加页面地址private static final String BOOKEDIT_PATH = "cakeManage/cakeEdit.jsp";// 商品修改页面地址private static final String BOOKDETAIL_PATH = "cakeManage/cakeDetail.jsp";// 商品详情页面地址private static final String BOOKIMGDIR_PATH="images/cake/cakeimg/";//商品图片保存文件夹相对路径/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse* response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String action = request.getParameter("action");switch (action) {case "list":cakeList(request, response);break;case "detail":cakeDetail(request, response);break;case "addReq":cakeAddReq(request, response);break;case "add":cakeAdd(request, response);break;case "edit":cakeEdit(request, response);break;case "update":cakeUpdate(request,response);break;case "find":cakeFind(request, response);break;case "updateImg":updateImg(request,response);break;case "del":cakeDel(request,response);break;case "batDel":cakeBatDel(request,response);break;case "seach":seachCake(request,response);}}private void seachCake(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int curPage = 1;String page = request.getParameter("page");if (page != null) {curPage = Integer.parseInt(page);}int maxSize = Integer.parseInt(request.getServletContext().getInitParameter("maxPageSize"));String cakename = request.getParameter("cakename");CakeDao bd = new CakeDaoImpl();PageBean pb = null;if(cakename != null && cakename != "") {pb = new PageBean(curPage, maxSize, bd.cakeReadCount(cakename));request.setAttribute("cakeList", bd.cakeList(pb,cakename));}else {pb = new PageBean(curPage, maxSize, bd.cakeReadCount());request.setAttribute("cakeList", bd.cakeList(pb));}request.setAttribute("pageBean", pb);request.getRequestDispatcher(BOOKLIST_PATH).forward(request, response);}//商品批量删除private void cakeBatDel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String ids=request.getParameter("ids");CakeDao bd=new CakeDaoImpl();UpLoadImgDao uid=new UpLoadImgDaoImpl();File contextPath=new File(request.getServletContext().getRealPath("/"));String imgIds=bd.findimgIdByIds(ids);//批量查询图片的id并组成一组字符串List<UpLoadImg> list = uid.findImgByIds(imgIds);if(bd.cakeBatDelById(ids)) {request.setAttribute("cakeMessage", "商品已批量删除");if(uid.imgBatDelById(imgIds)) {for(UpLoadImg uli:list) {//批量删除本地文件File f=new File(contextPath,uli.getImgSrc());if(f.exists()) {f.delete();}}}}else {request.setAttribute("cakeMessage", "商品批量删除失败");}//用户删除成功失败都跳转到用户列表页面cakeList(request, response);//通过servlet中listUser跳到用户列表}//商品删除private void cakeDel(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int id=Integer.parseInt(request.getParameter("id"));File contextPath=new File(request.getServletContext().getRealPath("/"));CakeDao bd=new CakeDaoImpl();UpLoadImgDao uid=new UpLoadImgDaoImpl();Cake cake=bd.findCakeById(id);//这里先删除数据库商品信息,再删除商品图片及本地硬盘图片信息if(bd.cakeDelById(id)) {request.setAttribute("cakeMessage", "商品已删除");if(uid.imgDelById(cake.getImgId())) {//删除本地文件File f=new File(contextPath,cake.getUpLoadImg().getImgSrc());if(f.exists()) {f.delete();}}}else {request.setAttribute("cakeMessage", "商品删除失败");}//用户删除成功失败都跳转到用户列表页面cakeList(request, response);//通过servlet中listUser跳到用户列表}//商品更新private void cakeUpdate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {CakeDao cakeDao=new CakeDaoImpl();Cake cake=new Cake();cake.setCakeId(Integer.parseInt(request.getParameter("cakeId")));cake.setCatalogId(Integer.parseInt(request.getParameter("catalog")));cake.setPrice(Double.parseDouble(request.getParameter("price")));cake.setDescription(request.getParameter("description"));if(cakeDao.cakeUpdate(cake)) {request.setAttribute("cakeMessage", "修改成功");cakeList(request, response);}else {request.setAttribute("cakeMessage", "图片失败");request.setAttribute("cakeInfo", cakeDao.findCakeById(cake.getCakeId()));request.getRequestDispatcher(BOOKEDIT_PATH).forward(request, response);}}// 更新商品图片private void updateImg(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException {int cakeId = Integer.parseInt(request.getParameter("id"));boolean flag = false;String imgSrc = null;OutputStream outputStream = null;InputStream inputStream = null;String imgName = null;String contentType = null;CakeDao cakeDao = new CakeDaoImpl();UpLoadImgDao upImgDao = new UpLoadImgDaoImpl();File contextPath=new File(request.getServletContext().getRealPath("/"));File dirPath = new File( contextPath,BOOKIMGDIR_PATH);if (!dirPath.exists()) {dirPath.mkdirs();}DiskFileItemFactory dfif = new DiskFileItemFactory();ServletFileUpload servletFileUpload = new ServletFileUpload(dfif);List<FileItem> parseRequest = null;try {parseRequest = servletFileUpload.parseRequest(request);} catch (FileUploadException e) {e.printStackTrace();}Iterator<FileItem> iterator = parseRequest.iterator();while (iterator.hasNext()) {FileItem fileItem = iterator.next();if (!fileItem.isFormField()) {inputStream = fileItem.getInputStream();contentType = fileItem.getContentType();if ("image/jpeg".equals(contentType)) {imgName = RanUtil.getUUID() + ".jpg";flag = true;}if ("image/png".equals(contentType)) {imgName = RanUtil.getUUID() + ".png";flag = true;}}}if (flag) {imgSrc = BOOKIMGDIR_PATH + imgName;outputStream = new FileOutputStream(new File(contextPath,imgSrc));IOUtils.copy(inputStream, outputStream);outputStream.close();inputStream.close();//根据商品id去查询图片信息Cake cake = cakeDao.findCakeById(cakeId);UpLoadImg upImg = cake.getUpLoadImg();// 删除旧图片文件如果存在File oldImg = new File(contextPath,cake.getUpLoadImg().getImgSrc());if (oldImg.exists()) {oldImg.delete();}upImg.setImgName(imgName);upImg.setImgSrc(imgSrc);upImg.setImgType(contentType);if (upImgDao.imgUpdate(upImg)) {request.setAttribute("cakeMessage", "图片修改成功");} else {request.setAttribute("cakeMessage", "图片修改失败");}} else {request.setAttribute("cakeMessage", "图片修改失败");}cakeEdit(request,response);}// 获取商品分类信息private void cakeAddReq(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {CatalogDao cd = new CatalogDaoImpl();request.setAttribute("catalog", cd.getCatalog());request.getRequestDispatcher(BOOKADD_PATH).forward(request, response);}// 商品增加private void cakeAdd(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {boolean flag = false;Map<String, String> map = new HashMap<>();InputStream inputStream = null;OutputStream outputStream = null;File dirPath = new File(request.getServletContext().getRealPath("/") + BOOKIMGDIR_PATH);if (!dirPath.exists()) {dirPath.mkdirs();}DiskFileItemFactory dfif = new DiskFileItemFactory();ServletFileUpload servletFileUpload = new ServletFileUpload(dfif);// 解决乱码servletFileUpload.setHeaderEncoding("ISO8859_1");List<FileItem> parseRequest = null;try {parseRequest = servletFileUpload.parseRequest(request);} catch (FileUploadException e) {e.printStackTrace();}Iterator<FileItem> iterator = parseRequest.iterator();while (iterator.hasNext()) {FileItem fileItem = iterator.next();// 判断是否是表单的普通字段true为普通表单字段,false为上传文件内容if (fileItem.isFormField()) {String name = new String(fileItem.getFieldName().getBytes("ISO8859_1"), "utf-8");String value = new String(fileItem.getString().getBytes("ISO8859_1"), "utf-8");map.put(name, value);} else {String imgName = null;String contentType = fileItem.getContentType();if ("image/jpeg".equals(contentType)) {imgName = RanUtil.getUUID() + ".jpg";flag = true;}if ("image/png".equals(contentType)) {imgName = RanUtil.getUUID() + ".png";flag = true;}if (flag) {inputStream = fileItem.getInputStream();File file = new File(dirPath, imgName);outputStream = new FileOutputStream(file);// 保存img信息到map集合中,后面传入对象使用map.put("imgName", imgName);map.put("imgSrc", BOOKIMGDIR_PATH + imgName);map.put("imgType", contentType);}}}// 如果上传的内容小于3个必填项或者图片没有或类型不正确返回if (map.size() < 3 || !flag) {request.setAttribute("cakeMessage", "商品添加失败");cakeAddReq(request, response);} else {// 验证通过才可以保存图片流到本地IOUtils.copy(inputStream, outputStream);outputStream.close();inputStream.close();// 把map集合中存储的表单数据提取出来转换为cake对象// 这里要求商品增加的字段要和数据库字段一致,不然map集合转对象会出错Cake cake = new Cake();cake.setCakeName(map.get("cakeName"));cake.setPrice(Double.parseDouble(map.get("price")));cake.setDescription(map.get("desc"));// 商品分类信息Catalog catalog = cake.getCatalog();catalog.setCatalogId(Integer.parseInt(map.get("catalog")));// 图片信息UpLoadImg upLoadImg = cake.getUpLoadImg();upLoadImg.setImgName(map.get("imgName"));upLoadImg.setImgSrc(map.get("imgSrc"));upLoadImg.setImgType(map.get("imgType"));// 增加商品先增加商品图片,商品图片增加成功了在添加商品信息UpLoadImgDao uid = new UpLoadImgDaoImpl();if (uid.imgAdd(cake.getUpLoadImg())) {// 获取商品图片添加后的idInteger imgId = uid.findIdByImgName(upLoadImg.getImgName());upLoadImg.setImgId(imgId);CakeDao bd = new CakeDaoImpl();if (bd.cakeAdd(cake)) {request.setAttribute("cakeMessage", "商品添加成功");cakeList(request, response);} else {request.setAttribute("cakeMessage", "商品添加失败");cakeAddReq(request, response);}} else {// 图片添加失败就判定商品添加失败request.setAttribute("cakeMessage", "商品添加失败");cakeAddReq(request, response);}}}// 获取商品列表private void cakeList(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int curPage = 1;String page = request.getParameter("page");if (page != null) {curPage = Integer.parseInt(page);}int maxSize = Integer.parseInt(request.getServletContext().getInitParameter("maxPageSize"));CakeDao bd = new CakeDaoImpl();PageBean pb = new PageBean(curPage, maxSize, bd.cakeReadCount());request.setAttribute("pageBean", pb);request.setAttribute("cakeList", bd.cakeList(pb));request.getRequestDispatcher(BOOKLIST_PATH).forward(request, response);}// 商品详情页private void cakeDetail(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String id = request.getParameter("id");CakeDao bd = new CakeDaoImpl();request.setAttribute("cakeInfo", bd.findCakeById(Integer.parseInt(id)));request.getRequestDispatcher(BOOKDETAIL_PATH).forward(request, response);}// 接收商品修改请求private void cakeEdit(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int cakeId = Integer.parseInt(request.getParameter("id"));CakeDao cakeDao = new CakeDaoImpl();CatalogDao catalogDao = new CatalogDaoImpl();request.setAttribute("catalog", catalogDao.getCatalog());//获取商品分类信息request.setAttribute("cakeInfo", cakeDao.findCakeById(cakeId));//获取商品信息byIdrequest.getRequestDispatcher(BOOKEDIT_PATH).forward(request, response);}// ajax查找商品是否存在private void cakeFind(HttpServletRequest request, HttpServletResponse response) throws IOException {String cakeName = request.getParameter("param");CakeDao bd = new CakeDaoImpl();// 这里实例化json对象需要导入6个jar包(// commons-lang-2.4.jar// ,commons-collections-3.2.1.jar,commons-beanutils-1.8.3.jar// json-lib-2.4-jdk15.jar ,ezmorph-1.0.6.jar ,commons-logging-1.1.3.jar)JSONObject json = new JSONObject();if (bd.findCakeByCakeName(cakeName)) {json.put("info", "该商品已存在");json.put("status", "n");} else {json.put("info", "输入正确");json.put("status", "y");}response.getWriter().write(json.toString());}}
基于java web servlet生鲜商城管理系统源码含报告文档相关推荐
- 基于JAVA准妈妈孕期交流平台计算机毕业设计源码+系统+lw文档+部署
基于JAVA准妈妈孕期交流平台计算机毕业设计源码+系统+lw文档+部署 基于JAVA准妈妈孕期交流平台计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...
- 基于JAVA口红专卖网站计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA口红专卖网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA口红专卖网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- java计算机毕业设计疫情物质管理系统源码+数据库+lw文档+系统+部署
java计算机毕业设计疫情物质管理系统源码+数据库+lw文档+系统+部署 java计算机毕业设计疫情物质管理系统源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 基于JAVA小型健身俱乐部网站计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA小型健身俱乐部网站计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA小型健身俱乐部网站计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开 ...
- 基于JAVA健康饮食推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA健康饮食推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA健康饮食推荐系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...
- 基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...
- 基于JAVA家教到家平台计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA家教到家平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA家教到家平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...
- 基于JAVA张家口市旅游网计算机毕业设计源码+系统+lw文档+部署
基于JAVA张家口市旅游网计算机毕业设计源码+系统+lw文档+部署 基于JAVA张家口市旅游网计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...
- 基于JAVA图书馆借阅系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA图书馆借阅系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA图书馆借阅系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
最新文章
- java学习类的笔记
- ExtJS + Gears
- 匿名内部类与Lambda表达式
- .net core 5 IIS Api网站部署需要注意
- Leetcod每日一题:151.reverse-words-in-a-string(翻转字符串里的单词)
- LINUX进程内存占用查看
- 董树义 近代微波测量技术_论文发表 | 基于微波雷达的1200米大跨悬索桥多点变形同步测量...
- work文档,Excel表格常用快捷键
- for in在python中什么意思_Python for 循环中 in 关键字含义是什么?
- 用Python快速分析和预测股票价格
- mybatis类型转换器处理PostGis数据库geometry类型转换
- office2010无法卸载问题
- 比江小白杜蕾斯还要清新,这些文案,可能这就是青春吧!
- js实现几秒倒计时之后自动跳转页面
- git配置代理 代理 socks5带用户名密码
- 罗克韦尔AB PLC RSLogix模拟量IO模块基本介绍
- 简约个人导航,主页,引导页html源码三分钟下载安装
- JavaScript的内存作用域闭包
- html书签解析,解析netscape样式书签html文件嵌套数组
- cad2020找不到MSVCP140.dll怎么办,msvcp140.dll无法继续执行代码
热门文章
- B3:Unity制作Moba类游戏——加载地图系统
- 【electron】打开离线包-双击文件打开关联应用
- 论文解读:《基于预先训练的DNA载体和注意机制识别增强子-启动子与神经网络的相互作用》
- OpenBSD,FreeBSD,Linux硬盘速度对比
- 【转】CultureInfo中重要的InvariantCulture
- java计算机毕业设计计算机类专业考研交流学习平台MyBatis+系统+LW文档+源码+调试部署
- AI Earth 深度学习模型替换数值天气预报模型中的参数化方案-大气辐射传输方案
- 爬虫python代码网易云_使用python爬取网易云歌曲下载时为0KB的解决方法 | ZPY博客...
- 常用计算机设备教案,初中信息技术《导购电脑设备》教案
- 怎么在mac下运行映像dmg_Mac制作dmg镜像重新安装系统方法