代码结构
超市管理系统/├── src/
│ ├── com/
│ │ └── zhang/
│ ├── documents.txt
│ ├── documents_detail.txt
│ ├── goods.txt
│ ├── order.txt
│ ├── order_detail.txt
│ ├── role.txt
│ ├── tb_test.txt
│ └── user.txt
├── web/
│ ├── 1.html
│ ├── Boss.jsp
│ ├── WEB-INF/
│ │ ├── lib/
│ │ └── web.xml
│ ├── a.jsp
│ ├── buyer.jsp
│ ├── cashier.jsp
│ ├── error.jsp
│ ├── index.jsp
│ ├── login.jsp
│ ├── regedit.jsp
│ ├── static/
│ │ └── js/
│ ├── stock.jsp
│ ├── supermarket.jsp
│ ├── updateGoods.jsp
│ └── warehouse.jsp
└── demo.iml
该项目是一个超市管理系统,主要功能是实现超市日常运营的数字化管理,基于JSP+Java技术栈开发,采用文本文件存储数据。以下是核心功能总结:
1. 用户与权限管理
- 支持多角色管理:收银员、采购员、仓库管理员、老板四种角色
- 实现用户登录认证与权限控制,不同角色对应不同操作权限
2. 商品管理
- 维护商品基础信息:名称、价格、类别、库存、销量等
- 支持商品信息更新功能(对应
updateGoods.jsp
页面)
3. 订单与销售管理
- 记录销售订单信息:订单编号、创建时间、总金额、状态
- 管理订单明细:商品名称、单价、数量
- 提供收银结算功能(对应
cashier.jsp
页面)
4. 采购与库存管理
- 处理采购单据:记录采购单号、商品、价格、数量
- 支持入库、出库操作,维护商品库存水平
5. 系统架构
- 前端:使用JSP页面实现用户交互,包括登录页、角色专属操作页等
login.jsp
- 后端:
GoodsDao.java
- 数据存储:MySQL
6. 核心业务流程
- 采购员创建采购单 → 仓库管理员确认入库 → 更新商品库存
- 收银员录入销售订单 → 系统自动扣减库存 → 生成订单记录
- 老板可查看全系统数据,进行综合管理
表结构和初始数据
CREATE TABLE user (uid INT,rid INT,real_name VARCHAR(50),username VARCHAR(50),password VARCHAR(50),phone VARCHAR(20),states INT
);INSERT INTO user VALUES
(1, 4, '张三', 'boss', '123', '12345678987', 1),
(2, 1, '张三', 'b', 'b', '13353611111', 1),
(3, 2, '李四', '12345', '12345', '13351112655', 1),
(4, 2, '李四', '123456', '123456', '12345678987', 1),
(5, 3, '张三', '风向决定发型', '123', '12345678901', 1),
(6, 3, '张三', '风向决定发型', '123', '12345678901', 1),
(7, 3, '张三', 'a', 'a', '12345678987', 1),
(8, 3, '张三', '张三', '123', '12345678901', 1),
(9, 3, '张三', '风向决定发型', '123', '12345678901', 1),
(10, 3, '张三', '嘻嘻', '123', '12345678901', 1),
(11, 3, '张三', '笑嘻嘻', '123', '12345678901', 1);CREATE TABLE tb_test (id INT,name VARCHAR(50),create_time DATETIME
);CREATE TABLE role (rid INT,r_name VARCHAR(50),permission INT,comment VARCHAR(100)
);INSERT INTO role VALUES
(1, '收银员', 1, '出库,结算'),
(2, '采购员', 2, '进货、查看商品库存、商品销量'),
(3, '仓库管理员', 3, '入库、查看商品库存'),
(4, '老板', 4, '管理下层');CREATE TABLE `order` (oid INT,create_time DATETIME,total DECIMAL(10,2),states INT
);INSERT INTO `order` VALUES
(1, '2021-05-13 11:11:06', 200, 1),
(2, '2021-05-14 11:16:03', 55, 1);CREATE TABLE order_detail (odid INT,oid INT,g_name VARCHAR(50),price DECIMAL(10,2),num INT
);INSERT INTO order_detail VALUES
(1, 1, 'a', 1, 10),
(3, 2, 'b', 5, 1);CREATE TABLE goods (gid INT,g_name VARCHAR(50),price DECIMAL(10,2),type VARCHAR(20),stock INT,sales INT,barcode VARCHAR(100)
);INSERT INTO goods VALUES
(1, '龙虾', 108, '海鲜', 51, 0, '条形码'),
(2, '海带', 10, '海鲜', 50, 0, '条形码'),
(3, '旺仔', 10, '零食', 50, 0, '条形码'),
(5, '青菜', 4, '蔬菜', 50, 0, '条形码'),
(6, '辣条', 2, '零食', 50, 0, '条形码'),
(7, '面包', 10, '零食', 50, 0, '条形码'),
(8, '红薯', 11.5, '蔬菜', 50, 0, '这是红薯的条形码'),
(9, '茄子', 88, '蔬菜', 50, 0, '这是茄子的条形码'),
(10, '黄瓜', 88, '蔬菜', 50, 0, '这是黄瓜的条形码'),
(11, '辣条', 3, '卫龙', 50, 0, '这是卫龙的条形码'),
(12, '豆浆', 2.5, '饮品', 50, 0, '这是豆浆的条形码');CREATE TABLE documents (did INT,create_time DATETIME,total DECIMAL(10,2),type INT,operator VARCHAR(50),auditor VARCHAR(50)
);INSERT INTO documents VALUES
(1, '2021-05-11 18:46:19', 50, 1, 'a', 'a'),
(2, '2021-05-11 20:28:17', 50, 1, 'a', 'a'),
(3, '2021-05-11 19:40:18', 2, 1, 'a', 'a'),
(4, '2021-05-12 18:39:26', 500, 0, '12345', 'a'),
(5, '2021-05-13 10:05:49', 50, 0, '12345', 'boss');CREATE TABLE documents_detail (ddid INT,did INT,gid INT,price DECIMAL(10,2),num INT,total DECIMAL(10,2)
);INSERT INTO documents_detail VALUES
(1, 1, 1, 1000, 50, 20),
(3, 2, 2, 2, 2, 1),
(4, 2, 2, 2, 2, 1),
(5, 1, 1, 50, 20, 1000);
实体类
public class User {private Integer uid;//用户编号private Integer rid;//角色编号private String real_name;//真实姓名private String username;//用户名private String password;//密码(MD5加密)private String phone;//手机号private Boolean states=true;//用户状态(0正常,1停用)
}//角色实体类
public class Role {private int rid;//角色编号private String r_name;//角色名private int permission;//权限private String comment;//备注
}
/*** 订单表*/
public class Order {private Integer oid;//订单编号private Timestamp create_time;//创建时间private Double total;//总金额private Integer states;//状态(0以删除,1 未支付,2 已支付)
}/*** 订单详情表*/
public class Order_Detail {private Integer odid;//订单详情编号private Integer oid;//订单编号private String g_name;//商品名称private Double price;//单价private Integer num;//数量
}//商品表
public class Goods {private Integer gid;//商品编号private String g_name;//商品名private Double price;//单价private String type;//分类private Integer stock;//库存private Integer sales;//销量private String barcode;//条形码
}
/*** 单据*/
public class Documents {private Integer did;//订单编号private Timestamp create_time;//创建时间private Double total;//总金额private Integer type;//类型(0进货单,1入库单)private String operator;//操作人private String auditor;//审核人
}
/*** 单据详情*/
public class Documents_Detail {private Integer ddid;//单据详情编号private Integer did;//单据编号private Integer gid;//商品编号private Double price;//商品进价private Integer num;//数量private Double total;//总金
}
dao连接MySQL工具类
package com.zhang.dao;import java.sql.*;//连接数据库工具
public class BaseDao {private String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8";private String username = "root";private String password = "1234";private static String driver = "com.mysql.cj.jdbc.Driver";private Connection conn;private PreparedStatement ps;private ResultSet rs;static {try {//加载驱动Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}//创建链接private void getConnection() {try {conn = DriverManager.getConnection(url, username, password);} catch (SQLException e) {e.printStackTrace();}}//执行sql//增删改public int executeUpdate(String sql, Object... objs) {//获得连接getConnection();try {
//select * from user where username=?and password=?ps = conn.prepareStatement(sql);if (objs != null) {for (int i = 0; i < objs.length; i++) {ps.setObject(i + 1, objs[i]);}}int i = ps.executeUpdate();close();//关闭资源return i;} catch (SQLException e) {e.printStackTrace();}return -1;}//查询public ResultSet executeQuery(String sql,Object... objs) {getConnection();try {ps = conn.prepareStatement(sql);if (objs != null) {for (int i = 0; i < objs.length; i++) {ps.setObject(i + 1, objs[i]);}}rs = ps.executeQuery();return rs;} catch (SQLException e) {e.printStackTrace();}return null;}//关闭public void close() {try {if (rs != null) {rs.close();}if (ps != null) {ps.close();}if (conn != null) {conn.close();}} catch (SQLException e) {System.out.println("关闭出错");}}// public void test() {
// try {
// Class.forName(driver);
// Connection connection = DriverManager.getConnection(url, username, password);
// System.out.println("连接成功");
//
// } catch (ClassNotFoundException e) {
// e.printStackTrace();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }public static void main(String[] args) {BaseDao BaseDao=new BaseDao();// BaseDao.test();}}
dao层
import com.zhang.entity.User;public interface UserDao {//添加用户boolean addUser(User user);//登陆用户信息User logUser(User user);
}public interface OrderDao {int addOrder(Order order) throws Exception;int delOrderByID(Integer oid) throws Exception;int updateOrder(Order order) throws Exception;List<Order> selectOrder() throws Exception;
}public interface Order_DetailDao {int addOrder_Detail(Order_Detail order_Detail) throws Exception;int delOrder_Detail(Integer odid) throws Exception;int updateOrder_Detail(Order_Detail order_Detail) throws Exception;List<Order_Detail> selectOrder_Detail() throws Exception;
}
import com.zhang.entity.Goods;import java.util.List;//商品
public interface GoodsDao {//添加商品(进货)int addGoods(Goods goods);//修改商品信息(修改)int updateGoods(Goods goods);//删除商品int deleteGoods(Integer gid);//查询全部商品List<Goods> selGoods();//根据类型查询商品List<Goods> selGoodsByType(String type);//根据销量查询商品List<Goods> selGoodsByStock(Integer sales);//根据商品名查询商品List<Goods> selGoodsByG_Name(String g_name);Goods selGoodsByID(Integer gid);
}import com.zhang.entity.Documents;import java.util.List;public interface DocumentsDao {//创建单据int addDocuments(Documents documents);//查看单据List<Documents> selectDocuments();//根据ID查看单据List<Documents> selectDocuments(Integer did);//修改单据int updateDocuments(Documents documents);//删除单据int deleteDocuments(Integer did);
//根据type查询
List<Documents> selectDocumentsByType(Integer type);}import com.zhang.entity.Documents_Detail;import java.util.List;public interface Documents_DetailDao {//创建单据详情int addDocuments_detail(Documents_Detail documents_detail);//查看单据详情List<Documents_Detail> selectDocuments_detail();//根据表单编号查看单据详情List<Documents_Detail> selectDocuments_detailByID(Integer ddid);//修改单据详情int updateDocuments_detail(Documents_Detail documents_detail);//删除单据详情int deleteDocuments_detail(Integer ddid);
}
dao实现层
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.UserDao;
import com.zhang.entity.User;import java.sql.ResultSet;
import java.sql.SQLException;public class UserDaoImpl extends BaseDao implements UserDao {//用户注测@Overridepublic boolean addUser(User user) {String sql = "insert into user (uid,rid,real_name,username,password,phone,states) values (?,?,?,?,?,?,?)";int i = this.executeUpdate(sql,null,user.getRid(),user.getReal_name(),user.getUsername(),user.getPassword(),user.getPhone(),true);return i > 0 ? true : false;}
//用户登陆@Overridepublic User logUser(User user) {//selete * from user where username=""and passwoed="" '1'or'1=1 'String sql = "select * from user where username= ? and password=?";ResultSet rs = executeQuery(sql,user.getUsername(),user.getPassword());try {User user1=null;if (rs.next()){user1= new User(rs.getInt(1),rs.getInt(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getBoolean(7));}close();return user1;} catch (SQLException e) {e.printStackTrace();}return null;}// public static void main(String[] args) {
// UserDaoImpl userDao = new UserDaoImpl();
// User user = new User(3,1,"管理员","admin","123","12345678987");
// boolean b = userDao.addUser(user);
// System.out.println(b);
// }
}
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.OrderDao;
import com.zhang.entity.Order;import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;public class OrderDaoImpl extends BaseDao implements OrderDao {@Overridepublic int addOrder(Order order) throws Exception {String sql = "insert into `order` (oid,create_time,total,states) values (?,?,?,?)";return executeUpdate(sql, null, order.getCreate_time(), order.getTotal(), order.getStates());}@Overridepublic int delOrderByID(Integer oid) throws Exception {String sql = "delete from `order` where oid=?";return executeUpdate(sql, oid);}@Overridepublic int updateOrder(Order order) throws Exception {String sql="update `order` set create_time=?,total=?,states=? where oid=?";return executeUpdate(sql,order.getCreate_time(),order.getTotal(),order.getStates(),order.getOid());}@Overridepublic List<Order> selectOrder() throws Exception {String sql="select * from `order`";ResultSet resultSet = executeQuery(sql);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Order(resultSet.getInt(1),resultSet.getTimestamp(2),resultSet.getDouble(3),resultSet.getInt(4)));}close();} catch (Exception e) {e.printStackTrace();}return list;}// public static void main(String[] args) {
// OrderDaoImpl orderDao=new OrderDaoImpl();
// Date date = new Date();
// try {
// // System.out.println(orderDao.addOrder(new Order(null,new Timestamp(date.getTime()),800D,1)));
// //System.out.println(orderDao.updateOrder(new Order(new Timestamp(date.getTime()),600D,1,2)));
//// System.out.println(orderDao.selectOrder());
// System.out.println(orderDao.delOrderByID(2));
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.Order_DetailDao;
import com.zhang.entity.Order;
import com.zhang.entity.Order_Detail;import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class Order_DetailDaoImpl extends BaseDao implements Order_DetailDao {@Overridepublic int addOrder_Detail(Order_Detail order_Detail) throws Exception {String sql = "insert into order_detail (odid,oid,g_name,price,num) values (?,?,?,?,?)";return executeUpdate(sql, null, order_Detail.getOid(), order_Detail.getG_name(), order_Detail.getPrice(), order_Detail.getNum());}@Overridepublic int delOrder_Detail(Integer odid) throws Exception {String sql = "delete from order_detail where odid=?";return executeUpdate(sql, odid);}@Overridepublic int updateOrder_Detail(Order_Detail order_Detail) throws Exception {String sql = "update order_detail set oid=?,g_name=?,price=?,num=? where odid=?";return executeUpdate(sql, order_Detail.getOid(), order_Detail.getG_name(), order_Detail.getPrice(), order_Detail.getNum(), order_Detail.getOdid());}@Overridepublic List<Order_Detail> selectOrder_Detail() throws Exception {String sql = "select * from order_detail";ResultSet resultSet = executeQuery(sql);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Order_Detail(resultSet.getInt(1), resultSet.getInt(2), resultSet.getString(3), resultSet.getDouble(4), resultSet.getInt(5)));}close();} catch (Exception e) {e.printStackTrace();}return list;}// public static void main(String[] args) {
// Order_DetailDaoImpl order_detailDao = new Order_DetailDaoImpl();
// try {
//// System.out.println(order_detailDao.selectOrder_Detail());
//// System.out.println(order_detailDao.addOrder_Detail(new Order_Detail(null, 2, "b", 5D, 1)));
//// System.out.println(order_detailDao.updateOrder_Detail(new Order_Detail( 2, "c", 5D, 1,2)));
//// System.out.println(order_detailDao.delOrder_Detail(2));
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.GoodsDao;
import com.zhang.entity.Goods;import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class GoodsDaoImpl extends BaseDao implements GoodsDao {@Overridepublic int addGoods(Goods goods) {String sql = "insert into goods (gid,g_name,price,type,stock,sales,barcode) values (null,?,?,?,?,?,?)";return executeUpdate(sql, goods.getG_name(), goods.getPrice(), goods.getType(), goods.getStock(), goods.getSales(), goods.getBarcode());}@Overridepublic int updateGoods(Goods goods) {String sql = "update goods set g_name=?,price=?,type=?,stock=?,sales=?,barcode=? where gid=?";return executeUpdate(sql, goods.getG_name(), goods.getPrice(), goods.getType(), goods.getStock(), goods.getSales(), goods.getBarcode(), goods.getGid());}@Overridepublic int deleteGoods(Integer gid) {String sql = "delete from goods where gid=?";return executeUpdate(sql, gid);}@Overridepublic List<Goods> selGoods( ) {String sql = "select * from goods";ResultSet resultSet = executeQuery(sql);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Goods(resultSet.getInt(1),resultSet.getString(2),resultSet.getDouble(3),resultSet.getString(4),resultSet.getInt(5),resultSet.getInt(6),resultSet.getString(7)));}close();} catch (Exception e) {e.printStackTrace();}return list;}@Overridepublic List<Goods> selGoodsByType(String type) {String sql = "select * from goods where type=?";ResultSet resultSet = executeQuery(sql,type);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Goods(resultSet.getInt(1),resultSet.getString(2),resultSet.getDouble(3),resultSet.getString(4),resultSet.getInt(5),resultSet.getInt(6),resultSet.getString(7)));}close();} catch (Exception e) {e.printStackTrace();}return list;}@Overridepublic List<Goods> selGoodsByStock(Integer stock) {String sql = "select * from goods where stock=?";ResultSet resultSet = executeQuery(sql,stock);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Goods(resultSet.getInt(1),resultSet.getString(2),resultSet.getDouble(3),resultSet.getString(4),resultSet.getInt(5),resultSet.getInt(6),resultSet.getString(7)));}close();} catch (Exception e) {e.printStackTrace();}return list;}@Overridepublic List<Goods> selGoodsByG_Name(String g_name) {String sql = "select * from goods where stock=?";ResultSet resultSet = executeQuery(sql,g_name);List list = new ArrayList();try {while (resultSet.next()) {list.add(new Goods(resultSet.getInt(1),resultSet.getString(2),resultSet.getDouble(3),resultSet.getString(4),resultSet.getInt(5),resultSet.getInt(6),resultSet.getString(7)));}close();} catch (Exception e) {e.printStackTrace();}return list;}@Overridepublic Goods selGoodsByID(Integer gid) {String sql = "select * from goods where gid=?";ResultSet resultSet = executeQuery(sql,gid);Goods goods=null;try {while (resultSet.next()) {goods= new Goods(resultSet.getInt(1), resultSet.getString(2), resultSet.getDouble(3), resultSet.getString(4), resultSet.getInt(5), resultSet.getInt(6), resultSet.getString(7));}close();} catch (Exception e) {e.printStackTrace();}return goods;}
// public static void main(String[] args) {
// GoodsDaoImpl GoodsDaoImpl = new GoodsDaoImpl();
// // Goods goods = new Goods(null, "青菜", 4.00, "蔬菜", 50, 0, "条形码");
// System.out.println(GoodsDaoImpl.selGoodsByID(1));
// //int i = GoodsDaoImpl.addGoods(new Goods(null, "青菜", 4.00, "蔬菜", 50, 0, "条形码"));
// //int i = GoodsDaoImpl.deleteGoods(1);
// //System.out.println(i);
// // System.out.println(GoodsDaoImpl.selGoods(new Goods(null, "青菜", 4.00, "蔬菜", 50, 0, "条形码"))+"\n");
// // System.out.println(GoodsDaoImpl.selGoodsByType("零食"));
//
// }
}
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.DocumentsDao;
import com.zhang.entity.Documents;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class DocumentsDaoImpl extends BaseDao implements DocumentsDao {@Overridepublic int addDocuments(Documents documents) {String sql="INSERT INTO documents (did,create_time,total,type,operator,auditor) VALUES(?,?,?,?,?,?)";return executeUpdate(sql,null,documents.getCreate_time(),documents.getTotal(),documents.getType(),documents.getOperator(),documents.getAuditor());}@Overridepublic List<Documents> selectDocuments() {String sql ="select * from documents";ResultSet resultSet = executeQuery(sql);List list=new ArrayList();try {while (resultSet.next()){list.add(new Documents(resultSet.getInt(1),resultSet.getTimestamp(2),resultSet.getDouble(3),resultSet.getInt(4),resultSet.getString(5),resultSet.getString(6)));}close();}catch (Exception e){e.printStackTrace();}return list;}@Overridepublic List<Documents> selectDocuments(Integer did) {String sql="select * from documents where did=?";ResultSet resultSet = executeQuery(sql,did);List list=new ArrayList();try {while (resultSet.next()){list.add(new Documents(resultSet.getInt(1),resultSet.getTimestamp(2),resultSet.getDouble(3),resultSet.getInt(4),resultSet.getString(5),resultSet.getString(6)));}close();}catch (Exception e){e.printStackTrace();}return list;}@Overridepublic int updateDocuments(Documents documents) {String sql="update documents set total=?,type=?,operator=?,auditor=? where did=? ";return executeUpdate(sql,documents.getTotal(),documents.getType(),documents.getOperator(),documents.getAuditor(),documents.getDid());}@Overridepublic int deleteDocuments(Integer did) {String sql="delete from documents where did=?";return executeUpdate(sql,did);}@Overridepublic List<Documents> selectDocumentsByType(Integer type) {String sql="select * from documents where type=?";ResultSet resultSet = executeQuery(sql,type);List list=new ArrayList();try {while (resultSet.next()){list.add(new Documents(resultSet.getInt(1),resultSet.getTimestamp(2),resultSet.getDouble(3),resultSet.getInt(4),resultSet.getString(5),resultSet.getString(6)));}close();}catch (Exception e){e.printStackTrace();}return list;}// public static void main(String[] args) {
// DocumentsDaoImpl documentsDaoImpl=new DocumentsDaoImpl();
//// Date date=new Date();
//// Documents Documents=new Documents(null,new Timestamp(date.getTime()),2d,1,"a","a");
//// documentsDaoImpl.addDocuments(Documents);
// // System.out.println( documentsDaoImpl.selectDocuments(2));
//
// // System.out.println(documentsDaoImpl.updateDocuments(new Documents(55D, 33, "b", "b", 2)));
// // System.out.println( documentsDaoImpl.deleteDocuments(2));
// //System.out.println(documentsDaoImpl.selectDocumentsByType(0));
// }
}
package com.zhang.dao.impl;import com.zhang.dao.BaseDao;
import com.zhang.dao.Documents_DetailDao;
import com.zhang.entity.Documents;
import com.zhang.entity.Documents_Detail;import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class Documents_DetailDaoImpl extends BaseDao implements Documents_DetailDao {@Overridepublic int addDocuments_detail(Documents_Detail documents_Detail) {String sql="INSERT INTO documents_detail (ddid,did,gid,price,num,total) VALUES(?,?,?,?,?,?)";return executeUpdate(sql,null,documents_Detail.getDid(),documents_Detail.getGid(),documents_Detail.getPrice(),documents_Detail.getNum(),documents_Detail.getTotal());}@Overridepublic List<Documents_Detail> selectDocuments_detail(){String sql ="select * from documents_detail";ResultSet resultSet = executeQuery(sql);List list=new ArrayList();try {while (resultSet.next()){list.add(new Documents_Detail(resultSet.getInt(1),resultSet.getInt(2),resultSet.getInt(3),resultSet.getDouble(4),resultSet.getInt(5),resultSet.getDouble(6)));}close();}catch (Exception e){e.printStackTrace();}return list;}@Overridepublic List<Documents_Detail> selectDocuments_detailByID(Integer ddid){String sql="select * from documents_detail where ddid=?";ResultSet resultSet = executeQuery(sql,ddid);List list=new ArrayList();try {while (resultSet.next()){list.add(new Documents_Detail(resultSet.getInt(1),resultSet.getInt(2),resultSet.getInt(3),resultSet.getDouble(4),resultSet.getInt(5),resultSet.getDouble(6)));}close();}catch (Exception e){e.printStackTrace();}return list;}@Overridepublic int updateDocuments_detail(Documents_Detail documents_detail){String sql="update documents_detail set did=?,gid=?,price=?,num=?,total=? where ddid=? ";return executeUpdate(sql,documents_detail.getDid(),documents_detail.getGid(),documents_detail.getPrice(),documents_detail.getNum(),documents_detail.getTotal(),documents_detail.getDdid());}@Overridepublic int deleteDocuments_detail(Integer ddid){String sql="delete from documents_detail where ddid=?";return executeUpdate(sql,ddid);}public static void main(String[] args) {Documents_DetailDaoImpl Documents_DetailDaoImpl=new Documents_DetailDaoImpl();//System.out.println(Documents_DetailDaoImpl.selectDocuments_detail());// System.out.println(Documents_DetailDaoImpl.selectDocuments_detailByID(1));// System.out.println(Documents_DetailDaoImpl.addDocuments_detail(new Documents_Detail(null,2,2,2D,2,1D)));// System.out.println(Documents_DetailDaoImpl.updateDocuments_detail(new Documents_Detail(2,2,4D,2,2D,2)));// System.out.println(Documents_DetailDaoImpl.deleteDocuments_detail(2));}
}
过滤器
package com.zhang.filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;//处理乱码
@WebFilter("/*")
public class CharacterFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {servletRequest.setCharacterEncoding("utf-8");servletResponse.setCharacterEncoding("utf-8");filterChain.doFilter(servletRequest, servletResponse);}@Overridepublic void destroy() {}
}
servive层
import com.zhang.entity.User;public interface UserService {//用户注册boolean addUser(User user);//用户登录User logUser(User user);
}import com.zhang.entity.Order;import java.util.List;public interface OrderService {boolean addOrder(Order order) throws Exception;boolean delOrderByID(Integer oid) throws Exception;boolean updateOrder(Order order) throws Exception;List<Order> selectOrder() throws Exception;
}
import com.zhang.entity.Goods;import java.util.List;public interface GoodsService {//添加商品(进货)int addGoods(Goods goods);//修改商品信息(修改)int updateGoods(Goods goods);//删除商品int deleteGoods(Integer gid);//查询全部商品List<Goods> selGoods( );//根据类型查询商品List<Goods> selGoodsByType(String type);//根据销量查询商品List<Goods> selGoodsByStock(Integer sales);//根据商品名查询商品List<Goods> selGoodsByG_Name(String g_name);//根据ID查询商品Goods selGoodsByID(Integer gid);
}
import com.zhang.entity.Documents;import java.util.List;public interface DocumentsService {//创建单据boolean addDocuments(Documents documents);//查看单据List<Documents> selectDocuments();//根据ID查看单据List selectDocuments(Integer did);//修改单据boolean updateDocuments(Documents documents);//删除单据boolean deleteDocuments(Integer did);//根据type查询List<Documents> selectDocumentsByType(Integer type);}import com.zhang.entity.Documents_Detail;import java.util.List;public interface Documents_DetailService {//创建单据详情boolean addDocuments_detail(Documents_Detail documents_detail);//查看单据详情List<Documents_Detail> selectDocuments_detail();//根据表单编号查看单据详情List<Documents_Detail> selectDocuments_detailByID(Integer ddid);//修改单据详情boolean updateDocuments_detail(Documents_Detail documents_detail);//删除单据详情boolean deleteDocuments_detail(Integer ddid);
}
service实现层
package com.zhang.service.impl;import com.zhang.dao.UserDao;
import com.zhang.dao.impl.UserDaoImpl;
import com.zhang.entity.User;
import com.zhang.service.UserService;public class UserServiceImpl implements UserService {private UserDao userDao=new UserDaoImpl();@Overridepublic boolean addUser(User user) {return userDao.addUser(user);}@Overridepublic User logUser(User user) {return userDao.logUser(user);}
}
package com.zhang.service.impl;import com.zhang.dao.OrderDao;
import com.zhang.dao.impl.OrderDaoImpl;
import com.zhang.entity.Order;
import com.zhang.service.OrderService;import java.util.List;public class OrderServiceImpl implements OrderService {private OrderDao orderDao=new OrderDaoImpl();@Overridepublic boolean addOrder(Order order) throws Exception {return orderDao.addOrder(order)>0?true:false;}@Overridepublic boolean delOrderByID(Integer oid) throws Exception {return orderDao.delOrderByID(oid)>0?true:false;}@Overridepublic boolean updateOrder(Order order) throws Exception {return orderDao.updateOrder(order)>0?true:false;}@Overridepublic List<Order> selectOrder() throws Exception {return orderDao.selectOrder();}
}
package com.zhang.service.impl;import com.zhang.dao.GoodsDao;
import com.zhang.dao.impl.GoodsDaoImpl;
import com.zhang.entity.Goods;
import com.zhang.service.GoodsService;import java.util.List;public class GoodsServiceImpl implements GoodsService {private GoodsDao goodsDao=new GoodsDaoImpl();@Overridepublic int addGoods(Goods goods) {return goodsDao.addGoods(goods);}@Overridepublic int updateGoods(Goods goods) {return goodsDao.updateGoods(goods);}@Overridepublic int deleteGoods(Integer gid) {return goodsDao.deleteGoods(gid);}@Overridepublic List<Goods> selGoods() {return goodsDao.selGoods();}@Overridepublic List<Goods> selGoodsByType(String type) {return goodsDao.selGoodsByType(type);}@Overridepublic List<Goods> selGoodsByStock(Integer sales) {return goodsDao.selGoodsByStock(sales);}@Overridepublic List<Goods> selGoodsByG_Name(String g_name) {return goodsDao.selGoodsByG_Name(g_name);}@Overridepublic Goods selGoodsByID(Integer gid) {return goodsDao.selGoodsByID(gid);}
}
package com.zhang.service.impl;import com.zhang.dao.DocumentsDao;
import com.zhang.dao.impl.DocumentsDaoImpl;
import com.zhang.entity.Documents;
import com.zhang.service.DocumentsService;import java.util.List;public class DocumentsServiceImpl implements DocumentsService {private DocumentsDao documentsDao=new DocumentsDaoImpl();@Overridepublic boolean addDocuments(Documents documents) {return documentsDao.addDocuments(documents)>0?true:false;}@Overridepublic List<Documents> selectDocuments() {return documentsDao.selectDocuments();}@Overridepublic List selectDocuments(Integer did) {return documentsDao.selectDocuments(did);}@Overridepublic boolean updateDocuments(Documents documents) {return documentsDao.updateDocuments(documents)>0?true:false;}@Overridepublic boolean deleteDocuments(Integer did) {return documentsDao.deleteDocuments(did)>0?true:false;}@Overridepublic List<Documents> selectDocumentsByType(Integer type) {return documentsDao.selectDocumentsByType(type);}
}
package com.zhang.service.impl;import com.zhang.dao.Documents_DetailDao;
import com.zhang.dao.impl.Documents_DetailDaoImpl;
import com.zhang.entity.Documents_Detail;
import com.zhang.service.Documents_DetailService;import java.util.List;public class Documents_DetailServiceImpl implements Documents_DetailService {private Documents_DetailDao documents_detailDao = new Documents_DetailDaoImpl();@Overridepublic boolean addDocuments_detail(Documents_Detail documents_detail) {return documents_detailDao.addDocuments_detail(documents_detail) > 0 ? true : false;}@Overridepublic List<Documents_Detail> selectDocuments_detail() {return documents_detailDao.selectDocuments_detail();}@Overridepublic List<Documents_Detail> selectDocuments_detailByID(Integer ddid) {return documents_detailDao.selectDocuments_detailByID(ddid);}@Overridepublic boolean updateDocuments_detail(Documents_Detail documents_detail) {return documents_detailDao.updateDocuments_detail(documents_detail) > 0 ? true : false;}@Overridepublic boolean deleteDocuments_detail(Integer ddid) {return documents_detailDao.deleteDocuments_detail(ddid) > 0 ? true : false;}
}
servlet层
package com.zhang.servlet;import com.zhang.entity.Documents_Detail;
import com.zhang.service.Documents_DetailService;
import com.zhang.service.impl.Documents_DetailServiceImpl;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 java.io.IOException;@WebServlet("/addDocuments_DetailsServlet")
public class AddDocuments_DetailsServlet extends HttpServlet {private Documents_DetailService documents_detailService=new Documents_DetailServiceImpl();@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String ddid = request.getParameter("ddid");String did = request.getParameter("did");String gid = request.getParameter("gid");String price = request.getParameter("price");String num = request.getParameter("num");String total = request.getParameter("total");boolean b = documents_detailService.addDocuments_detail(new Documents_Detail(Integer.parseInt(did), Integer.parseInt(gid), Double.parseDouble(price), Integer.parseInt(num), Double.parseDouble(total), null));if (b){response.sendRedirect("./buyer.jsp");}else {response.sendRedirect("./error.jsp");}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}
package com.zhang.servlet;import com.zhang.entity.Documents;
import com.zhang.service.DocumentsService;
import com.zhang.service.impl.DocumentsServiceImpl;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 java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;@WebServlet("/addDocumentsServlet")
public class AddDocumentsServlet extends HttpServlet {private DocumentsService documentsService=new DocumentsServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String did = request.getParameter("did");String create_time = request.getParameter("create_time");String type = request.getParameter("type");String total = request.getParameter("total");String operator = request.getParameter("operator");String auditor = request.getParameter("auditor");Date date=new Date();boolean b = documentsService.addDocuments(new Documents(null, new Timestamp(date.getTime()), Double.parseDouble(total), Integer.parseInt(type), operator, auditor));if (b){response.sendRedirect("./buyer.jsp");}else {response.sendRedirect("./error.jsp");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}import com.zhang.entity.Documents;
import com.zhang.entity.Documents_Detail;
import com.zhang.service.DocumentsService;
import com.zhang.service.Documents_DetailService;
import com.zhang.service.impl.DocumentsServiceImpl;
import com.zhang.service.impl.Documents_DetailServiceImpl;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 java.io.IOException;
import java.util.List;@WebServlet("/BOSSLoginServlet")
public class BOSSLoginServlet extends HttpServlet {private DocumentsService documentsService=new DocumentsServiceImpl();private Documents_DetailService documents_detailService=new Documents_DetailServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取数据库中单据的数据//进货单List<Documents> documents=documentsService.selectDocumentsByType(0);//入库单List<Documents> documents1=documentsService.selectDocumentsByType(1);
//单据详情List<Documents_Detail> documents_details = documents_detailService.selectDocuments_detail();//存入sessionrequest.getSession().setAttribute("documents",documents);request.getSession().setAttribute("documents1",documents1);request.getSession().setAttribute("documents_details",documents_details);response.sendRedirect("./Boss.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}@WebServlet("/bServlet")
public class BServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String text = request.getParameter("text");System.out.println(text);response.sendRedirect("./login.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);}
}
package com.zhang.servlet;import com.zhang.entity.Documents;
import com.zhang.entity.Documents_Detail;
import com.zhang.service.DocumentsService;
import com.zhang.service.Documents_DetailService;
import com.zhang.service.impl.DocumentsServiceImpl;
import com.zhang.service.impl.Documents_DetailServiceImpl;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 java.io.IOException;
import java.util.List;@WebServlet("/buyerServlet")
public class BuyerServlet extends HttpServlet {private DocumentsService documentsService=new DocumentsServiceImpl();private Documents_DetailService documents_detailService=new Documents_DetailServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取数据库中单据的数据List<Documents> documents=documentsService.selectDocuments();List<Documents_Detail> documents_details = documents_detailService.selectDocuments_detail();//存入sessionrequest.getSession().setAttribute("documents",documents);request.getSession().setAttribute("documents_details",documents_details);response.sendRedirect("./buyer.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}
package com.zhang.servlet;import com.zhang.entity.Order;
import com.zhang.service.OrderService;
import com.zhang.service.impl.OrderServiceImpl;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 java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;@WebServlet("/cashierServlet")
public class CashierServlet extends HttpServlet {
private OrderService orderService=new OrderServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String oid = request.getParameter("oid");String create_time = request.getParameter("create_time");String total = request.getParameter("total");String states = request.getParameter("states");Date date=new Date();try {orderService.addOrder(new Order(null,new Timestamp(date.getTime()),Double.parseDouble(total),Integer.parseInt(states)));} catch (Exception e) {e.printStackTrace();}response.sendRedirect("./cashier.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}package com.zhang.servlet;import com.zhang.entity.Goods;
import com.zhang.service.GoodsService;
import com.zhang.service.impl.GoodsServiceImpl;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 java.io.IOException;/*** 预修改仓库的*/
@WebServlet("/findUpdateGoodsServlet")
public class FindUpdateGoodsServlet extends HttpServlet {private GoodsService goodsService = new GoodsServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) {try {
// //获取idString gid = request.getParameter("gid");
// System.out.println(gid);
// //调用serviceGoods goods = goodsService.selGoodsByID(Integer.parseInt(gid));request.setAttribute("goods", goods);request.getRequestDispatcher("/updateGoods.jsp").forward(request, response);} catch (Exception e) {e.printStackTrace();}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);}
}package com.zhang.servlet;import com.zhang.entity.User;
import com.zhang.service.UserService;
import com.zhang.service.impl.UserServiceImpl;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 java.io.IOException;/*** 登陆的*/
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {private UserService userService = new UserServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//从页面获取到用户名,密码String username = request.getParameter("username");String password = request.getParameter("password");//调用方法验证登录User user = userService.logUser(new User(null, username, password));//System.out.println("user.getStates()"+user.getStates());if (user != null) {//判断用户状态,为真就登陆if(user.getStates()) {//重新new个User封装全部数据User user1 = new User(user.getUid(), user.getRid(), user.getReal_name(), username, password, user.getPhone(), user.getStates());//登陆成功,把数据放到session中request.getSession().setAttribute("user1", user1);//每个身份跳转到不同的页面进行管理if (user1.getRid() == 1) {//收银员response.sendRedirect("./cashier.jsp");}if (user1.getRid() == 2) {//采购员request.getRequestDispatcher("./buyerServlet").forward(request, response);}if (user1.getRid() == 3) {//仓库管理员request.getRequestDispatcher("./warehouseServlet").forward(request, response);}if (user1.getRid() == 4) {//老板response.sendRedirect("./BOSSLoginServlet");}}else {response.sendRedirect("./error.jsp");}} else {//注册失败response.sendRedirect("./error.jsp");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}package com.zhang.servlet;import com.zhang.entity.User;
import com.zhang.service.UserService;
import com.zhang.service.impl.UserServiceImpl;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 java.io.IOException;/*** 注测的业务*/
@WebServlet("/regeditServlet")
public class RegeditServlet extends HttpServlet {private UserService userService = new UserServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String uid = request.getParameter("uid");int rid = 0;String shenfen = request.getParameter("shenfen");if (shenfen.equals("收银员")) {rid = 1;} else if (shenfen.equals("采购员")) {rid = 2;} else if (shenfen.equals("仓库管理员")) {rid = 3;}String real_name = request.getParameter("real_name");String username = request.getParameter("username");String password = request.getParameter("password");String phone = request.getParameter("phone");String states = request.getParameter("states");//System.out.println("states:==" + states);boolean fal=true;if (states.equals("0")){fal=true;}else {fal=false;}System.out.println(fal);if (userService.addUser(new User(null, rid, real_name, username, password, phone,fal))) {//注册成功response.sendRedirect("./login.jsp");} else {//注册失败response.sendRedirect("./error.jsp");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}package com.zhang.servlet;import com.zhang.entity.Goods;
import com.zhang.service.GoodsService;
import com.zhang.service.impl.GoodsServiceImpl;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 java.io.IOException;/*** 进货的逻辑处理*/
@WebServlet("/stockServlet")
public class StockServlet extends HttpServlet {private GoodsService goodsService =new GoodsServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String uid = request.getParameter("uid");String g_name = request.getParameter("g_name");String price = request.getParameter("price");String type = request.getParameter("type");String stock = request.getParameter("stock");String sales = request.getParameter("sales");String barcode = request.getParameter("barcode");int i = goodsService.addGoods(new Goods(g_name, Double.parseDouble(price), type, Integer.parseInt(stock), Integer.parseInt(sales), barcode));System.out.println(i);response.sendRedirect("./warehouse.jsp");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);}
}
package com.zhang.servlet;import com.zhang.entity.Goods;
import com.zhang.service.GoodsService;
import com.zhang.service.impl.GoodsServiceImpl;
import org.apache.commons.beanutils.BeanUtils;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 java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;/*** 修改的servlet*/
@WebServlet("/updateGoodsServlet")
public class UpdateGoodsServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String gid = request.getParameter("gid");String g_name = request.getParameter("g_name");String price = request.getParameter("price");String type = request.getParameter("type");String stock = request.getParameter("stock");String sales = request.getParameter("sales");String barcode = request.getParameter("barcode");GoodsService goodsService=new GoodsServiceImpl();//通过id获得Goodsint i = goodsService.updateGoods(new Goods(g_name,Double.parseDouble(price),type,Integer.parseInt(stock),Integer.parseInt(sales),barcode,Integer.parseInt(gid)));if(i==1){response.sendRedirect(request.getContextPath()+"/warehouse.jsp");}else if (i==0){System.out.println(123);}// Map<String, String[]> map = request.getParameterMap();
// Goods goods=new Goods();
// try {
// BeanUtils.populate(goods,map);
// GoodsService goodsService=new GoodsServiceImpl();
// int i = goodsService.updateGoods(goods);
// System.out.println(i);
// } catch (IllegalAccessException e) {
// e.printStackTrace();
// } catch (InvocationTargetException e) {
// e.printStackTrace();
// }}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}package com.zhang.servlet;import com.zhang.entity.Goods;
import com.zhang.service.GoodsService;
import com.zhang.service.impl.GoodsServiceImpl;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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;/*** 仓库管理员*/
@WebServlet("/warehouseServlet")
public class WarehouseServlet extends HttpServlet {private GoodsService goodsService=new GoodsServiceImpl();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//将数据库中的仓库中的数据弄到页面上List<Goods> goods = goodsService.selGoods();// System.out.println(goods);//将数据储存到session中request.getSession().setAttribute("goods",goods);//将页面跳转到warehouse.jspresponse.sendRedirect("./warehouse.jsp");//request.getRequestDispatcher("./warehouse.jsp").forward(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}
}
测试部分
package com.zhang.servlet;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 java.io.BufferedReader;
import java.io.IOException;@WebServlet("/aServlet")
public class aServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// String str = getRequestPayload(request); //调用方法 获取前端数据,返回字符串
// System.out.println(str);
// if (str != null && str.length() != 0) { //如果字符串不为空
// if (!str.contains("command")) {
// if (str.contains("admin")) {
// password = str.replaceAll("[[^0-9]]", ""); //正则表达式处理字符串,很麻烦
// System.out.println(password);
// res = manager.adminLogin("admin", password);
// flag = 0;
// } else {
// String newStr = str.replaceAll("[[^0-9,]]", "");
// String data[] = newStr.split(",");
// if (data[0].substring(0, 1).equals("4")) {
// res = manager.studentLogin(data[0], data[1]);
// flag = 2;
// } else {
// res = manager.teacherLogin(data[0], data[1]);
// flag = 1;
// }
// }
// PrintWriter out = response.getWriter(); //返回数据要用到的对象
// if (res && flag == 0) {
// out.write("管理员登录成功"); //具体返回数据,这里的内容就是前端res.data获取的内容
// } else if (res && flag == 1) { //由于该方法只能返回字符串,所以如果你要返回数据(比如从数据库查询的数据)
// out.write("教师登录成功"); //需要先将数据 通过阿里的fastjson工具转换为一个json字符串,这样发送过去,前端接收到会自动转换为对象
// } else if (res && flag == 2) {
// out.write("学生登录成功");
// }
// if (!res) {
// out.write("登录失败");
// }}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}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 java.io.BufferedReader;
import java.io.IOException;public class a extends HttpServlet {/*
因为没办法通过request.getParameter("参数名")方法获取前端传来的数据,
于是通过此方法接受前端传来的数据,转换为字符串输出
*/private String getRequestPayload(HttpServletRequest req) {StringBuilder sb = new StringBuilder();try (BufferedReader reader = req.getReader();) {char[] buff = new char[1024];int len;while ((len = reader.read(buff)) != -1) {sb.append(buff, 0, len);}} catch (IOException e) {e.printStackTrace();}return sb.toString();}/*** 使用上述方法,可以将前端传来的数据(键值对)转换为字符串,但这对我们的取数据就造成了麻烦,我前期一直用正则表达式处理字符串,获取想要的数据,最后随着前端传送的数据越来越复杂,该方法就不再合适了,**这里强推阿里的 fastjson包,可以直接将json字符串转换为对象,真香**** fastjson下载,看这篇文档*/public static void main(String[] args) {}
}
前端页面
<!-- Boss.jsp -->
<%@ page import="com.zhang.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>Boss</title>欢迎<%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {out.println(user.getUsername());// out.print("部门编号"+user.getRid());}
%><br><script src="./static/js/jQuery-1.8.3.js" type="text/javascript"></script><script type="text/javascript" async="true">function qq_onclick() {var text_2 = document.getElementById("text_1");text_2.removeAttribute("hidden");}function qq_close() {var text_1 = document.getElementById("text_1");text_1.setAttribute("hidden", true);}function qq_onclick1() {var text_2 = document.getElementById("text_2");text_2.removeAttribute("hidden");}function qq_close1() {var text_1 = document.getElementById("text_2");text_1.setAttribute("hidden", true);}function qq_onclick2() {var text_2 = document.getElementById("text_3");text_2.removeAttribute("hidden");}function qq_close2() {var text_1 = document.getElementById("text_3");text_1.setAttribute("hidden", true);}</script></head>
<body>
<%--单据--%>
<div id="text_1" hidden><h3>进货单</h3><form><c:forEach items="${sessionScope.documents}" var="documents"><span hidden> 单据ID:</span><input type="text" name="did" value="${documents.did}" hidden><br>创建时间<input type="text" name="create_time" value="${documents.create_time}"><br>总金额<input type="text" name="total" value="${documents.total}"><br>类型<input type="text" name="type" value="${documents.type}"><br>操作人<input type="text" name="operator" value="${documents.operator}"><br>审核人<input type="text" name="auditor" value="${documents.auditor}"><br></c:forEach></form><button type="button" id="but1" onclick="qq_close()">关闭</button><br> <br> <br> <br> <br>
</div>
<%--查看单据详情--%>
<div id="text_2" hidden><h3>入库单</h3><br><form><c:forEach items="${sessionScope.documents1}" var="documents1"><span hidden> 单据ID:</span><input type="text" name="did" value="${documents1.did}" hidden><br>创建时间<input type="text" name="create_time" value="${documents1.create_time}"><br>总金额<input type="text" name="total" value="${documents1.total}"><br>类型<input type="text" name="type" value="${documents1.type}"><br>操作人<input type="text" name="operator" value="${documents1.operator}"><br>审核人<input type="text" name="auditor" value="${documents1.auditor}"><br></c:forEach></form><button type="button" id="but2" onclick="qq_close1()">关闭</button><br> <br> <br> <br> <br>
</div>
<%--查看单据详情详情--%>
<div id="text_3" hidden><h3>查看单据详情详情</h3><br><form><c:forEach items="${sessionScope.documents_details}" var="documents_details">单据详情编号<input type="text" value="${documents_details.ddid}" name="ddid"><br>单据编号<input type="text" value="${documents_details.did}" name="did"><br>商品编号<input type="text" value="${documents_details.gid}" name="gid"><br>商品进价<input type="text" value="${documents_details.price}" name="price"><br>数量<input type="text" value="${documents_details.num}" name="num"><br>总金额<input type="text" value="${documents_details.total}" name="total"><br><br></c:forEach></form><button type="button" id="but3" onclick="qq_close2()">关闭</button><br> <br> <br> <br> <br>
</div>
<input type="button" onclick="qq_onclick()" value="点击查看进货单">
<input type="button" onclick="qq_onclick1()" value="点击查看入库单">
<input type="button" onclick="qq_onclick2()" value="点击查看单据详情">
<br>
<input type="button" value="功能待定">
<br>
<input type="button" value="查看单据">
<br>
<input type="button" value="功能待定">
<br>
<input type="button" value="功能待定">
<br>
<input type="button" value="功能待定">
<br>
<input type="button" value="查看仓库商品信息"></body>
</html><!-- buyer.jsp -->
<%@ page import="com.zhang.entity.User" %><%--
采购员页面
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>采购员页面</title>
</head>
欢迎<%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {out.println(user.getUsername());// out.print("部门编号"+user.getRid());}
%>
<script src="./static/js/jQuery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript" async="true">function qq_onclick() {var text_2 = document.getElementById("text_1");text_2.removeAttribute("hidden");}function qq_close() {var text_1 = document.getElementById("text_1");text_1.setAttribute("hidden", true);}function qq_onclick1() {var text_2 = document.getElementById("text_2");text_2.removeAttribute("hidden");}function qq_close1() {var text_1 = document.getElementById("text_2");text_1.setAttribute("hidden", true);}function qq_onclick2() {var text_2 = document.getElementById("text_3");text_2.removeAttribute("hidden");}function qq_close2() {var text_1 = document.getElementById("text_3");text_1.setAttribute("hidden", true);}function qq_onclick3() {var text_2 = document.getElementById("text_4");text_2.removeAttribute("hidden");}function qq_close3() {var text_1 = document.getElementById("text_4");text_1.setAttribute("hidden", true);}
</script>
</body>
<!--中文乱码解决方式-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<br><br><br>
<%--显示单据--%>
<div id="text_1" hidden><h3>单据</h3><form><c:forEach items="${sessionScope.documents}" var="documents"><span hidden> 单据ID:</span><input type="text" name="did" value="${documents.did}" hidden><br>创建时间<input type="text" name="create_time" value="${documents.create_time}"><br>总金额<input type="text" name="total" value="${documents.total}"><br>类型<input type="text" name="type" value="${documents.type}"><br>操作人<input type="text" name="operator" value="${documents.operator}"><br>审核人<input type="text" name="auditor" value="${documents.auditor}"><br></c:forEach></form><button type="button" id="but1" onclick="qq_close()">关闭</button><br> <br> <br> <br> <br>
</div>
<%--显示单据详情--%>
<div id="text_2" hidden><h3>单据详情</h3><br><form><c:forEach items="${sessionScope.documents_details}" var="documents_details">单据详情编号<input type="text" value="${documents_details.ddid}" name="ddid"><br>单据编号<input type="text" value="${documents_details.did}" name="did"><br>商品编号<input type="text" value="${documents_details.gid}" name="gid"><br>商品进价<input type="text" value="${documents_details.price}" name="price"><br>数量<input type="text" value="${documents_details.num}" name="num"><br>总金额<input type="text" value="${documents_details.total}" name="total"><br><br></c:forEach></form><br><button type="button" id="but2" onclick="qq_close1()">关闭</button><br> <br> <br> <br> <br>
</div>
<%--创建单据--%>
<div id="text_3" hidden><h3>创建单据</h3><br><form action="${pageContext.request.contextPath}/addDocumentsServlet" method="post"><input type="text" value="订单编号" name="did" hidden><br><input type="text" value="创建时间" name="create_time" hidden><br>总金额<input type="text" value="总金额" name="total"><br>类型<input type="text" value="类型:0进货单、1入库单" name="type">类型(0 进货单、1 入库单)<br>操作人<input type="text" value="操作人" name="operator"><br>审核人<input type="text" value="审核人" name="auditor"><br><button type="submit">点击创建</button><button type="reset">重置</button></form><button type="button" id="but3" onclick="qq_close2()">关闭</button><br> <br> <br> <br> <br>
</div>
<%--创建单据详情--%>
<div id="text_4" hidden><h3>创建单据详情</h3><br><form action="${pageContext.request.contextPath}/addDocuments_DetailsServlet" method="post"><input type="text" value="单据详情编号" name="ddid" hidden><br>单据编号<input type="text" value="单据编号" name="did"><br>商品编号<input type="text" value="商品编号" name="gid"><br>商品进价<input type="text" value="商品进价" name="price"><br>数量<input type="text" value="数量" name="num"><br>总金额<input type="text" value="总金额" name="total"><br><button type="submit">点击创建</button><button type="reset">重置</button></form><button type="button" id="but4" onclick="qq_close3()">关闭</button><br> <br> <br> <br> <br>
</div>
<button type="button" onclick="qq_onclick()">单据</button>
<br>
<button type="button" onclick="qq_onclick1()">单据详情</button>
<br>
<button type="button" onclick="qq_onclick2()">创建单据</button>
<br>
<button type="button" onclick="qq_onclick3()">创建单据详情</button>
</body>
</html><!-- cashier.jsp -->
<%@ page import="com.zhang.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--收银员页面
12345
12345
--%>
<html>
<head><title>收银员页面</title>
</head>
欢迎<%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {out.println(user.getUsername());// out.print("部门编号"+user.getRid());}
%>
<br><br><br><br>
<script src="./static/js/jQuery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript" async="true">function qq_onclick() {var text_2 = document.getElementById("text_1");text_2.removeAttribute("hidden");}function qq_close() {var text_1 = document.getElementById("text_1");text_1.setAttribute("hidden", true);}
</script>
</body>
<!--中文乱码解决方式-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div id="text_1" hidden style="width: 200px;height: 250px;background: #98d3fb;" >
<form action="./cashierServlet"><h3>创建订单</h3><input value="订单编号" name="oid" hidden><br><input value="创建时间" name="create_time" hidden><br><input value="总金额" name="total"><br><input value="订单状态:0删1未支付2已支" name="states"><br><br><br><button type="reset">重置</button> <button type="button" id="but" onclick="qq_close()">关闭</button><br><br> <button type="submit">提交</button><br>
</form>
</div>
<button type="button" onclick="qq_onclick()">创建单据</button>
<br><br><br><br>
<button type="button">点击查看未支付订单</button>
<button type="button">已支付订单</button>
</body>
</html><!-- error.jsp --><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>--%>
<%--<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>--%><html>
<head><title>报错页面</title>
</head>
<body>
<input type="text" style="font-size: 500px" value="错误">
</body>
</html><!-- index.jsp -->
<%@ page import="com.zhang.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--老板页面--%>
<html>
<head><title>主页面</title>
</head>
<body>
欢迎<%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {out.println(user.getUsername());// out.print("部门编号"+user.getRid());}
%>
</body>
<!--中文乱码解决方式-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<input type="text" style="font-size: 250px" value="谢">
<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
<input type="text" value="">
<input type="text" value=""></html><!-- login.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>登陆</title>
<body>
<!--中文乱码解决方式-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="./loginServlet" method="post">请输入用户名:<input type="text" name="username" value=""><br>请输入密码<input type="password" id="pwd" name="password" value=""><br><input type="text" name="states" hidden value="请输入用户状态"><button type="submit">登陆</button>
</form>
<%--(role)注测-->(user)登陆-->采购员(单据,单据详情)-->老板审核,修改状态-->仓库管理员(商品)-->收银员(订单,订单编号)-->-->
登陆页面,跳转到显示页面
根据不同的rid显示出不同的页面
1.仓库管理员入库、查看商品库存rid 1==收银员:出库,结算
rid 2==采购员:进货、查看商品库存、商品销量
rid 3==仓库管理员:入库、查看商品库存
rid 4==Admin,可查看全部***************手机扫码,把扫出来的东西弄到数据库中并显示***************
--%>
</body>
</html><!-- regedit.jsp --><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>注测页面</title>
</head>
<body>
<h1>请注册</h1>
<form action="./regeditServlet" method="post" id="regedit"><input type="text" name="uid" hidden>请选择身份:<input type="radio" id="shenfen1" name="shenfen" value="收银员">收银员<input type="radio" id="shenfen2" name="shenfen" value="采购员">采购员<input type="radio" id="shenfen3" name="shenfen" value="仓库管理员">仓库管理员<br><input type="radio" id="shenfen4" name="shenfen" value="老板" hidden="hidden"><span hidden>老板</span><br><input type="text" name="real_name" value="张三">请输入真实姓名<br><input type="text" name="username" value="风向决定发型">请输入用户名<br><input type="password" id="pwd" name="password" value="123">请输入密码<br><input type="password" id="tmpPwd" name="password" value="1234">请确认入密码<br><input type="text" name="phone" value="12345678901">请输入手机号<br><input type="text" name="states" value="0" hidden><span hidden>用户状态</span><button type="button" onclick="regedit()">注测</button></form>
<script type="text/javascript">function regedit() {var pwdEL = document.getElementById("pwd");var elementById = document.getElementById("tmpPwd");if (pwdEL.value == tmpPwd.value && pwdEL.value != null &&pwdEL.value!="") {
//数据进行提交document.getElementById("regedit").submit();}else{alert("两次密码不能各不相同");}}
</script>
</body>
</html><!-- stock.jsp -->
<%--
进货的jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>入库</title>
</head>
<body>
<h3> 请输入要进的商品的名称<br></h3>
<form action="./stockServlet" method="post"><spam hidden>商品ID</spam><input type="text" name="gid" hidden>商品名<input type="text" name="g_name"><br>价格<input type="text" name="price"><br>类型<input type="text" name="type"><br>数量<input type="text" name="stock"><br>销量<input type="text" name="sales"><br>条形码<input type="text" name="barcode"><br><button type="submit">提交</button>
</form></body>
</html><!-- supermarket.jsp --><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>超市页面</title>
</head>
<body>
<h3>购物页面</h3>
</body>
</html><!-- updateGoods.jsp -->
<%@ page import="com.zhang.entity.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>修改商品信息</title><%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {//out.println(user.getUsername());// out.print("部门编号"+user.getRid());}
%>
</head>
<body>
<script src="./static/js/jQuery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript" async="true"></script>
<form action="${pageContext.request.contextPath}/updateGoodsServlet" itmes="goods" var="goods" method="post"><input name="gid" value="${goods.gid}" hidden><br>商品名:<input name="g_name" value="${goods.g_name}"><br>价格:<input name="price" value="${goods.price}"><br>类型:<input name="type" value="${goods.type}"><br>库存:<input name="stock" value="${goods.stock}"><br>销量:<input name="sales" value="${goods.sales}"><br>条形码:<input name="barcode" value="${goods.barcode}"><br>
<%-- <button type="button"><a href="${pageContext.request.contextPath}/updateGoodsServlet?gid=${goods.gid}">修改</a></button>--%><input type="submit" value="修改1"><button type="reset">重置</button>
</form>
</body>
</html><!-- warehouse.jsp-->
<%@ page import="com.zhang.entity.User" %>
<%@ page import="com.zhang.entity.Goods" %>
<%@ page import="java.util.List" %><%--
仓库管理员
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>仓库管理员页面</title>
</head>
欢迎<%//获取sessionUser user = (User) session.getAttribute("user1");//如果没有这个用户重新登陆if (user == null) {response.sendRedirect("./login.jsp");} else {
// List list = (List) session.getAttribute("goods");
//
// out.println("谢瑞想真好看" + list);out.println(user.getUsername());}
%>
<body><!--中文乱码解决方式-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><%--入库--%><%--查看商品库存--%>
<%--显示出所有商品的信息--%>
<br>
<h1>显示出所有商品的信息</h1>
<button><a href="./stock.jsp">点击入库</a></button>
<table><th>商品编号</th><th>商品名</th><th>单价</th><th>类型</th><th>库存</th><th>销量</th><th>条形码</th><c:forEach items="${sessionScope.goods}" var="goods" ><tr><td>${goods.gid}</td><td>${goods.g_name}</td><td>${goods.price}</td><td>${goods.type}</td><td>${goods.stock}</td><td>${goods.sales}</td><td>${goods.barcode}</td><td><button><a href="./findUpdateGoodsServlet?gid=${goods.gid}">点击修改</a> </button></td></tr></c:forEach>
</table>
<button> 更多功能开发中</button></body>
</html>
访问
先登录再访问 servlet才能看到数据