java web 未完成項目,本來想做個超市管理系統,前端技術還沒學。前端是個簡單的html。后端接口比較完善。

代碼結構


超市管理系統/├── 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. 核心業務流程

  1. 采購員創建采購單 → 倉庫管理員確認入庫 → 更新商品庫存
  2. 收銀員錄入銷售訂單 → 系統自動扣減庫存 → 生成訂單記錄
  3. 老板可查看全系統數據,進行綜合管理

表結構和初始數據

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>&nbsp;&nbsp;&nbsp;<button type="button" id="but" onclick="qq_close()">關閉</button><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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才能看到數據

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917726.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

R語言基礎圖像及部分調用函數

R語言基礎圖像及部分調用函數 散點圖 散點圖是將所有的數據以點的形式展現在直角坐標系上&#xff0c;以顯示變量之間的相互影響程度&#xff0c;點的位置由變量的數值決定&#xff0c;每個點對應一個 X 和 Y 軸點坐標。 散點圖可以使用 plot() 函數來繪制 例子 x<-c(10,40)…

自由學習記錄(77)

官方模版、、都不用了&#xff0c;記得之前用gitextension 的時候也好像有這種問題&#xff0c;也不知道怎么回事 用自己的就行了 網上說什么都沒用&#xff0c;還是要自己老實寫&#xff0c;配上截圖工具截屏目錄直接轉文字過去&#xff0c;其實字都不要打多少的 一張很深刻…

運動想象 (MI) 分類學習系列 (18) : MSVTNet

運動想象分類學習系列:用于基于腦電圖的運動圖像解碼的多尺度視覺轉換器神經網絡 0. 引言 1. 主要貢獻 2. 方法![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/65a03fcd4a9144f6a7324b0969fd9d4e.png#pic_center) 3. 結果 3.1 腦電圖數據預處理 3.2 解碼性能比較 3.3…

Spring 03 Web springMVC

Springboot 常用 Spring MVC 實現 web 服務。 Spring MVC 請求處理流程圖片來自《Spring 實戰第四版》 瀏覽器請求首先被交給 DispatcherServlet 前端控制器。 DispatcherServlet 查詢處理器映射以決定將請求發送給哪個控制器。控制器處理業務邏輯后&#xff0c;向 DispatcherS…

大廠面試題

線程池的狀態?回答:running->shutdown->stop->tidyng->TERMINATED 線程池狀態怎么流轉2. 回答:變成shutdown&#xff0c;執行shutdown()函數變成stop&#xff0c;執行shutdownnow函數 變成tining&#xff0c;所有任務已處理完 變成TERMINATED&#xff0c;線程池調…

達芬奇31-40

快捷鍵C鼠標左鍵拖拽到節點上 A鼠標左鍵拖拽節點 復制到另一個圖層上Raw素材太哦調整為log方便調色磨皮中間調向左磨皮,向右變老找到丟失的高光磨皮后臉部高光消失,或不明顯,此時用亮度吸管工具找到臉部的高光,拉高中灰和亮部的Y值質感紋理增強器Tiny,Fine高頻細節(臉部)增強或…

dify

一、SVG Logo Design ### 任務 我希望你充當圖像生成的提示生成器。 ### 任務描述 你的工作是提供詳細且富有創意的描述&#xff0c;以激發 AI 生成獨特而有趣的圖像。請記住&#xff0c;格式應遵循以下一般模式&#xff1a; <主要主題>, <主要主題的描述>, <背…

Mysql 實戰問題處理速通

文章目錄創建賬號和授權查詢沒有主鍵的表統計每個庫大小前十張大表清理日志表Prepared statement needs to be re-preparedxtrabackup 問題鎖問題處理快速處理查詢事務等待和阻塞情況innodb_trxprocesslistdata_locksdata_lock_waitsmetadata_locksevents_statements_current其…

如何測量滾珠花鍵的旋轉方向間隙?

測量滾珠花鍵的旋轉方向間隙需要使用適當的工具&#xff0c;通常情況下&#xff0c;可以使用游標卡尺或外徑卡尺進行測量。這些工具可以準確地測量間隙的寬度和深度&#xff0c;并且可以輕松地記錄測量結果。手動檢測法&#xff1a;將滾珠花鍵固定在支架上&#xff0c;確保其可…

Android AppSearch 深度解析:現代應用搜索架構與實踐

一、AppSearch 概述1.1 什么是 AppSearchAppSearch 是 Android Jetpack 組件庫中的一個現代化本地搜索框架&#xff0c;于 Android 12 (API level 31) 引入&#xff0c;旨在為 Android 應用提供高效、可靠的本地數據索引和搜索能力。與傳統的 SQLite 搜索方案相比&#xff0c;A…

使用公眾號的消息模板給關注用戶發消息

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

【盤古100Pro+開發板實驗例程】FPGA學習 | 3X3圖像矩陣生成 | 圖像實驗指導手冊

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1. 實驗簡介 實驗目的&#xff1a; 實現 3X3 圖像矩陣對應 9 個像素點圖像數據的讀取。 實驗環境&#xff1a; Wind…

【通用視覺框架】基于OpenCvSharp+WPF+YOLO開發的仿VisionMaster的通用視覺框架軟件,全套源碼,開箱即用

【通用視覺框架】基于OpenCvSharpWPFYOLO開發的仿VisionMaster的通用視覺框架軟件&#xff0c;全套源碼&#xff0c;開箱即用 基于OpenCvSharp、WPF和YOLO的組合&#xff0c;構建一個兼具圖像處理能力、可視化交互和實時檢測的工業級視覺框架。其核心是將底層算法與上層界面無…

微信小程序轉Vue2組件智能提示詞

角色 小程序轉Vue2組件工程師&#xff08;ElementUI專精&#xff09; 核心能力 技術專長&#xff1a;作為世界頂尖前端工程師&#xff0c;專注于將小程序組件&#xff08;.wxml/.wxss/.js/.json&#xff09;精準轉換為Vue2ElementUI組件&#xff0c;轉換邏輯零偏差&#xff0c;…

JVM 學習總結

文章目錄內存結構程序計數器什么是程序計數器&#xff1f;核心作用&#xff1a;為什么需要程序計數器&#xff1f;實現原理主要特點示例&#xff1a;PC 寄存器如何工作總結Java 虛擬機棧什么是 Java 虛擬機棧&#xff1f;棧幀的內部結構主要特點總結線程診斷本地方法棧堆堆內存…

目標檢測檢出率,誤檢率,ap,map等評估python代碼

1.deepseek版本import numpy as np from collections import defaultdictdef calculate_iou(box1, box2):"""計算兩個邊界框的交并比&#xff08;IoU&#xff09;:param box1: [x1, y1, x2, y2]:param box2: [x1, y1, x2, y2]:return: IoU"""# 計…

python的高校班級管理系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 在高校教…

Scrapy 工作流程深度解析:引擎驅動的完美協作

一、Scrapy 核心組件全景圖 #mermaid-svg-KWCKN9n4urijbSws {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KWCKN9n4urijbSws .error-icon{fill:#552222;}#mermaid-svg-KWCKN9n4urijbSws .error-text{fill:#552222;…

PCIe Base Specification解析(七)

文章目錄3.6 Data Integrity Mechansisms3.6.1 Introduction3.6.2 LCRC, Sequence Number, and Retry Management (TLP Transmitter)3.6.2.1 LCRC and Sequence Number Rules (TLP Transmitter)3.6.2.2 Handling of Received DLLPs3.6.3 LCRC and Sequence Number (TLP Receive…

Windows 11 使用Windows Hello使用人臉識別登錄失敗,重新錄入人臉識別輸入PIN后報Windows Hello安裝程序白屏無響應的問題解決

Windows 11 使用Windows Hello使用人臉識別登錄失敗&#xff0c;重新錄入人臉識別輸入PIN后報Windows Hello安裝程序白屏無響應的問題解決&#xff1a;遇到此種情況時&#xff1a;1、在“開始”右鍵——設置——賬號——登錄選項2、需要在PIN這里先進行刪除此登錄選項&#xff…