Java项目:小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
源码获取:博客首页 "资源" 里下载!
一、项目简述
用户功能模块: 用户注册: 用户登录:商品模块:订单模块;后台管理系统功能:管理员模块: 商品模块:订单管理模块 ;
二、项目运行
1.运行环境
JDK1.8+Tomcat8.5+MYSQL+Eclispe(Eclispe,MyEclispe,Sts,IntelliJ IDEA都支持,小伙伴自行配置即可)
2.技术栈
JSP + Servlet + JDBC + Ajax + JavaScript + CSS + +DBUtil 等等
用户管理控制层:
public class UserServlet extends BaseBackServlet {@Overridepublic String add(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 UserServlet add方法");return null;}@Overridepublic String delete(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 UserServlet delete方法");int id = Integer.parseInt(request.getParameter("id"));userDAO.delete(id);return "@admin_user_list";}@Overridepublic String update(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 UserServlet update方法");Map<String, String> params = new HashMap<>();InputStream is = super.parseUpload(request, params);System.out.println(params);int id = Integer.parseInt(params.get("id"));String password = params.get("password");User user = userDAO.get(id);user.setPassword(password);userDAO.update(user);return "@admin_user_list";}@Overridepublic String edit(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 UserServlet edit方法");int id = Integer.parseInt(request.getParameter("id"));User u = userDAO.get(id);request.setAttribute("u", u);return "admin/editUser.jsp";}@Overridepublic String list(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 UserServlet list方法");List<User> us = userDAO.list(page.getStart(), page.getCount());int total = userDAO.getTotal();page.setTotal(total);request.setAttribute("us", us);request.setAttribute("page", page);return "admin/listUser.jsp";}
}
订单管理控制层:
public class OrderServlet extends BaseBackServlet {@Overridepublic String add(HttpServletRequest request, HttpServletResponse response, Page page) {return null;}@Overridepublic String delete(HttpServletRequest request, HttpServletResponse response, Page page) {return null;}@Overridepublic String update(HttpServletRequest request, HttpServletResponse response, Page page) {return null;}@Overridepublic String edit(HttpServletRequest request, HttpServletResponse response, Page page) {return null;}public String delivery(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 OrderServlet delivery方法");int id = Integer.parseInt(request.getParameter("id"));Order o = orderDAO.get(id);o.setDeliveryDate(new Date());o.setStatus(OrderDAO.waitConfirm);orderDAO.update(o);return "@admin_order_list";}@Overridepublic String list(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了 OrderServlet list方法");// 对订单对应的订单项进行初始化List<Order> os = orderDAO.list(page.getStart(), page.getCount());orderItemDAO.fill(os);int total = orderDAO.getTotal();page.setTotal(total);request.setAttribute("os", os);request.setAttribute("page", page);return "admin/listOrder.jsp";}
}
品类控制层:
public class CategoryServlet extends BaseBackServlet {@Overridepublic String add(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了category add方法");Map<String,String> params = new HashMap<>();InputStream is = super.parseUpload(request, params);System.out.println(params);String name = params.get("name");Category c = new Category();c.setName(name);categoryDAO.add(c);File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category"));File file = new File(imageFolder, c.getId() + ".jpg");try{if(null != is && 0 != is.available()){try(FileOutputStream fos = new FileOutputStream(file);){byte[] b = new byte[1024 * 1024];int length = 0;while(-1 != (length = is.read(b))){fos.write(b, 0, length);}fos.flush();//通过以下代码,将文件保存为jsp格式BufferedImage img = ImageUtil.change2jpg(file);ImageIO.write(img, "jpg", file);}}} catch (IOException e) {e.printStackTrace();}return "@admin_category_list";}@Overridepublic String delete(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了category delete方法");int id = Integer.parseInt(request.getParameter("id"));categoryDAO.delete(id);return "@admin_category_list";}@Overridepublic String update(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了category update方法");Map<String,String> params = new HashMap<>();InputStream is = super.parseUpload(request, params);System.out.println(params);String name = params.get("name");int id = Integer.parseInt(params.get("id"));Category c = new Category();c.setName(name);c.setId(id);categoryDAO.update(c);File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category"));File file = new File(imageFolder, c.getId() + ".jpg");try{if(null != is && 0 != is.available()){try(FileOutputStream fos = new FileOutputStream(file);){byte[] b = new byte[1024 * 1024];int length = 0;while(-1 != (length = is.read(b))){fos.write(b, 0, length);}fos.flush();//通过以下代码,将文件保存为jsp格式BufferedImage img = ImageUtil.change2jpg(file);ImageIO.write(img, "jpg", file);}}} catch (IOException e) {e.printStackTrace();}return "@admin_category_list";}@Overridepublic String edit(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了category edit方法");int id = Integer.parseInt(request.getParameter("id"));Category category = categoryDAO.get(id);request.setAttribute("c", category);return "admin/editCategory.jsp";}@Overridepublic String list(HttpServletRequest request, HttpServletResponse response, Page page) {List<Category> cs = categoryDAO.list(page.getStart(), page.getCount());int total = categoryDAO.getTotal();page.setTotal(total);request.setAttribute("thecs", cs);request.setAttribute("page", page);return "admin/listCategory.jsp";}
}
产品控制层:
public class ProductServlet extends BaseBackServlet {@Overridepublic String add(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了Product add方法");Map<String, String> params = new HashMap<>();InputStream inputStream = super.parseUpload(request, params);System.out.println(params);int cid = Integer.parseInt(params.get("cid"));Category c = categoryDAO.get(cid);String name = params.get("name");String subTitle = params.get("subTitle");float originalPrice = Float.parseFloat(params.get("originalPrice"));float promotePrice = Float.parseFloat(params.get("promotePrice"));int stock = Integer.parseInt(params.get("stock"));Product p = new Product();p.setCategory(c);p.setName(name);p.setSubTitle(subTitle);p.setOriginalPrice(originalPrice);p.setPromotePrice(promotePrice);p.setStock(stock);p.setCreateDate(new Date());productDAO.add(p);return "@admin_product_list?cid=" + cid;}@Overridepublic String delete(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了Product delete方法");int id = Integer.parseInt(request.getParameter("id"));Product p = productDAO.get(id);productDAO.delete(id);return "@admin_product_list?cid=" + p.getCategory().getId();}@Overridepublic String update(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了Product update方法");Map<String, String> params = new HashMap<>();InputStream inputStream = super.parseUpload(request, params);int cid = Integer.parseInt(params.get("cid"));Category c = categoryDAO.get(cid);int id = Integer.parseInt(params.get("id"));String name = params.get("name");String subTitle = params.get("subTitle");float originalPrice = Float.parseFloat(params.get("originalPrice"));float promotePrice = Float.parseFloat(params.get("promotePrice"));int stock = Integer.parseInt(params.get("stock"));Product p = new Product();p.setId(id);p.setName(name);p.setSubTitle(subTitle);p.setOriginalPrice(originalPrice);p.setPromotePrice(promotePrice);p.setStock(stock);p.setCategory(c);p.setCreateDate(new Date());productDAO.update(p);return "@admin_product_list?cid=" + p.getCategory().getId();}@Overridepublic String edit(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了Product edit方法");int id =Integer.parseInt(request.getParameter("id"));Product p = productDAO.get(id);request.setAttribute("p",p);return "admin/editProduct.jsp";}public String updatePropertyValue(HttpServletRequest request, HttpServletResponse response, Page page){System.out.println("调用了Product updatePropertyValue方法");int pvid = Integer.parseInt(request.getParameter("pvid"));String value = request.getParameter("value");PropertyValue pv = propertyValueDAO.get(pvid);pv.setValue(value);propertyValueDAO.update(pv);return "%success";}public String editPropertyValue(HttpServletRequest request, HttpServletResponse response, Page page){System.out.println("调用了Product editPropertyValue方法");int id = Integer.parseInt(request.getParameter("id"));Product p = productDAO.get(id);request.setAttribute("p", p);// 初始化属性,将产品对应的属性全部propertyValueDAO.init(p);List<PropertyValue> pvs = propertyValueDAO.list(p.getId());request.setAttribute("pvs", pvs);return "admin/editPropertyValue.jsp";}@Overridepublic String list(HttpServletRequest request, HttpServletResponse response, Page page) {System.out.println("调用了Product list方法");int cid = Integer.parseInt(request.getParameter("cid"));Category c = categoryDAO.get(cid);List<Product> ps = productDAO.list(cid, page.getStart(), page.getCount());int total = productDAO.getTotal(cid);page.setTotal(total);page.setParam("&cid=" + c.getId());request.setAttribute("ps", ps);request.setAttribute("c", c);request.setAttribute("page", page);return "admin/listProduct.jsp";}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

WebBrowserProgramming - Python Wiki
WebBrowserProgramming - Python WikiWeb Browser Programming in Python

C++ transform for_each
#include<iostream>#include<vector>#include <list>#include <algorithm>#include <functional> using namespace std; //不需拷贝,速度快void square(int &elementParam){ elementParam elementParam*elementParam;} //速度…

When should static_cast, dynamic_cast and reinterpret_cast be used?
这是我偶然在 http://stackoverflow.com/questions/ 网页上发现的一个问题(类似博客园的博问),问题主要是关于询问应该怎样使用,以及何时使用C里面的这几种类型转换操作符:static_case, dynamic_cast,以及 …

Java项目:养老院管理系统(java+SSM+JSP+Easyui+maven+mysql)
源码获取:博客首页 "资源" 里下载! 运行环境: JDK1.8、tomcat8、eclipse、mysql5.6、Navicat 功能实现: 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间 老人: 老人编号,姓名,…

Linux访问Windows磁盘实现共享
业务需求说明:公司在部署hadoop集群和DB server与SAN存储,公司的想法是前端通过DB Server能够将非结构化的数据能放进SAN存储当中,而hadoop集群也能够访问这个SAN存储。因此需要在SAN磁盘阵列中开辟一个共享区域,这个区域技能让DB…

ubuntu环境ceph配置入门(一)
为什么80%的码农都做不了架构师?>>> 环境:ubuntu server 14.04 64bit,安装ceph版本0.79 正常情况下应有多个主机,这里为了快速入门以一台主机为例,多台主机配置方式类似。 1. 配置静态IP及主机名 静态IP配…

mysql查看当前实时连接数
静态查看: SHOW PROCESSLIST; SHOW FULL PROCESSLIST; SHOW VARIABLES LIKE %max_connections%; SHOW STATUS LIKE %Connection%; 实时查看: mysql> show status like Threads%; -------------------------- | Variable_name | Value | ------------…

lsof 简介
lsof简介 lsof(listopen files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协…

Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

Xcode中如何解决无法使用svn命令行的问题
今天在自己机器上安装了xp虚拟机,然后在xp虚拟机上安装了svn的服务器.发现原本Xcode5以后就自带的svn竟然在终端无法使用命令行,出现了以下的错误: xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode…

查看和设置MySQL数据库字符集(转)
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname *.cnf -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/sha…

数据库管理工具dbeaver
https://dbeaver.io/ 转载于:https://www.cnblogs.com/mingzhang/p/11016229.html

linux文件权限详解
linux文件权限详解 一、文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户…

linux定时器(crontab)实例
linux实验示例----实现每2分钟将“/etc”下面的文件打包存储到“/usr/lobal”目录下 Step1:编辑当前用户的crontab并保存终端输入:>crontab -u root -l #查看root用户设置的定时器>crontab -u root -e #进入vi编译模式 00-59/2 * * * * /bin/bash …

Java项目:晚会抽奖系统(java+Jdbc+Servlet+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

hdu 4587 2013南京邀请赛B题/ / 求割点后连通分量数变形。
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节: 1&…

javascript中 (function(){})();如何理解?
javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。 (function(){})是一个标准的函数定义,但是…
通过IP地址和子网掩码与运算计算相关地址
知道ip地址和子网掩码后可以算出: 1、网络地址 2、广播地址 3、地址范围 4、本网有几台主机 例1:下面例子IP地址为1921681005子网掩码是2552552550。算出网络地址、广播地址、地址范围、主机数。 一)分步骤计算 1) 将IP地址和子网掩码换算为二进制…

Java项目:兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: HTML Springboot SpringMVC MyBatis…

java实现时间的比较
时间大小的比较以及把String类型的时间转换为Date类是时间在开发中是非常常见的,下面的主要是一个工具方法 public class Test {public static void main(String[] args) {// TODO Auto-generated method stubString sTime "2015-07-13";String fTime &…

在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
一、项目前提步骤1>、创建键空间CREATE KEYSPACE mykeyspaceWITH REPLICATION { class : SimpleStrategy, replication_factor : 1 };2>、创建表和关系数据库一样,开发前需要先建表,再操纵CREATE TABLE tweet (id uuid PRIMARY KEY,nickName text…

JAVA 多线程实现包子铺(买包子,吃包子)
1 package baozi;2 3 /*4 生产者(包子铺)类:是一个 线程类,继承Thread5 设置线程任务(run):生产包子6 对包子 进行判断7 true:有包子8 包子铺调用wait方法进…

字符串面试题(一)字符串逆序
字符串逆序可以说是最经常考的题目。这是一道入门级的题目,相信80%的程序员经历过这道题。给定一个字符串s,将s中的字符顺序颠倒过来,比如s"abcd",逆序后变成s"dcba"。 普通逆序 基本上没有这么考的…

Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)
源码获取:博客首页 "资源" 里下载! 该系统有三个角色,分别是:普通用户、房屋中介、管理员。普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功能:发布房屋信息…

Be a person
做人不能太实诚 尤其是干我们这行的 多久时间能做完 你自己心里要有个估算 然后把时间再往后延 别他妈给自己找罪受 转载于:https://www.cnblogs.com/wskgjmhh/p/4644840.html

Solr配置文件分析与验证
前面一篇开始学习solr的时候,做了个入门的示例http://6738767.blog.51cto.com/6728767/1401865。虽然可以检索出内容,但总和想象的结果有差异——比如,检索“天龙”两个字,按常规理解,就应该只出来《天龙八部》才对&am…

oracle启用归档日志
一、开启归档 1、查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 244 Current log sequence …

C++派生类与基类构造函数调用次序
本文用来测试C基类和派生类构造函数,析构函数,和拷贝构造函数的调用次序。运行环境:SUSE Linux Enterprise Server 11 SP2 (x86_64) #include <iostream>using namespace std;class Base{public:Base(){cout << "Base Cons…

Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)
源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBootVue框架开发的在线点餐系统。首先,这是一个前后端分离的项目。具有一个在线点餐系统该有的所有功能。 项目功能: 此项目分为两个角色&…

js 打开窗口window.open
js改变原有的地址 window.open(webPath/index?codecode,_self); 转载于:https://www.cnblogs.com/hwaggLee/p/4645680.html