代碼結構
超市管理系統/├── 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才能看到數據