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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…