当前位置: 首页 > news >正文

基于SSH的母婴用品销售管理系统带万字文档

文章目录

  • 母婴商城系统
    • 一、项目演示
    • 二、项目介绍
    • 三、系统部分功能截图
    • 四、万字论文参考
    • 五、部分代码展示
    • 六、底部获取项目源码和万字论文参考(9.9¥带走)

母婴商城系统

一、项目演示

母婴商城系统

二、项目介绍

基于SSH的母婴商城系统

系统角色 : 管理员、用户

一,管理员
1、用户登陆 2、商品展示 3、会员注册 4、我的购物车 5、我的订单 6、留言反馈 7、促销信息

二,用户
1、修改登陆密码 2、商品类型管理 3、商品信息管理 4、会员信息管理 5、订单信息管理 6、留言反馈管理 7、促销信息管理

语言:java
技术栈:Spring;JSP; Struts2; hibernate
数据库:MySQL

三、系统部分功能截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、万字论文参考

在这里插入图片描述
在这里插入图片描述

五、部分代码展示

package com.itbaizhan.action;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.itbaizhan.dao.TGoodsDAO;
import com.itbaizhan.dao.TMingxiDAO;
import com.itbaizhan.dao.TOrderDAO;
import com.itbaizhan.model.TGoods;
import com.itbaizhan.model.THuiyuan;
import com.itbaizhan.model.TMingxi;
import com.itbaizhan.model.TOrder;
import com.itbaizhan.util.Cart;
import com.opensymphony.xwork2.ActionSupport;public class buyAction extends ActionSupport
{private TGoodsDAO goodsDAO;private TOrderDAO orderDAO;private TMingxiDAO mingxiDAO;private String message;private String path;public String addToCart(){HttpServletRequest request=ServletActionContext.getRequest();HttpSession session=request.getSession();int goodsId=Integer.parseInt(request.getParameter("goodsId"));int shuliang=Integer.parseInt(request.getParameter("shuliang"));TGoods goods=goodsDAO.findById(goodsId);TMingxi mingxi=new TMingxi();mingxi.setGoods(goods);mingxi.setGoodsShuliang(shuliang);Cart cart = (Cart)session.getAttribute("cart");cart.addGoods(goodsId, mingxi);session.setAttribute("cart",cart);this.setMessage("成功购物");this.setPath("myCart.action");return "succeed";}public String myCart(){return ActionSupport.SUCCESS;}public String orderQueren(){Map request=(Map)ServletActionContext.getContext().get("request");return ActionSupport.SUCCESS;}public String orderSubmit(){HttpServletRequest request=ServletActionContext.getRequest();HttpSession session=request.getSession();Cart cart = (Cart)session.getAttribute("cart");THuiyuan huiyuan=(THuiyuan)session.getAttribute("huiyuan");TOrder order=new TOrder();//order.setId(id);order.setBianhao(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()));order.setXiadanshi(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));order.setZt("待受理");order.setSonghuodizhi(request.getParameter("songhuodizhi"));order.setFukuanfangshi(request.getParameter("fukuanfangshi"));order.setZongjia(cart.getTotalPrice());order.setHuiyuanId(huiyuan.getId());orderDAO.save(order);for (Iterator it = cart.getItems().values().iterator(); it.hasNext();){TMingxi mingxi = (TMingxi) it.next();mingxi.setOrderId(order.getId());mingxi.setGoodsId(mingxi.getGoods().getId());mingxiDAO.save(mingxi);}cart.getItems().clear();session.setAttribute("cart", cart);request.setAttribute("order", order);return ActionSupport.SUCCESS;}public String orderMine(){Map session= ServletActionContext.getContext().getSession();THuiyuan huiyuan=(THuiyuan)session.get("huiyuan");String sql="from TOrder where huiyuanId="+huiyuan.getId();List orderList=orderDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("orderList", orderList);return ActionSupport.SUCCESS;}public String orderDel(){HttpServletRequest request=ServletActionContext.getRequest();int id=Integer.parseInt(request.getParameter("id"));TOrder order=orderDAO.findById(id);orderDAO.delete(order);this.setMessage("订单删除完毕");this.setPath("orderMine.action");return "succeed";}public String orderMana(){String sql="from TOrder";List orderList=orderDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("orderList", orderList);return ActionSupport.SUCCESS;}public String orderShouli(){HttpServletRequest request=ServletActionContext.getRequest();int id=Integer.parseInt(request.getParameter("id"));TOrder order=orderDAO.findById(id);order.setZt("已受理");orderDAO.attachDirty(order);request.setAttribute("msg", "受理订单成功");return "msg";}public String orderDetail(){HttpServletRequest request=ServletActionContext.getRequest();int orderId=Integer.parseInt(request.getParameter("orderId"));String sql="from TMingxi where orderId="+orderId;List mingxiList=mingxiDAO.getHibernateTemplate().find(sql);for(int i=0;i<mingxiList.size();i++){TMingxi mingxi=(TMingxi)mingxiList.get(i);mingxi.setGoods(goodsDAO.findById(mingxi.getGoodsId()));}request.setAttribute("mingxiList", mingxiList);return ActionSupport.SUCCESS;}public TGoodsDAO getGoodsDAO(){return goodsDAO;}public TMingxiDAO getMingxiDAO(){return mingxiDAO;}public void setMingxiDAO(TMingxiDAO mingxiDAO){this.mingxiDAO = mingxiDAO;}public void setGoodsDAO(TGoodsDAO goodsDAO){this.goodsDAO = goodsDAO;}public TOrderDAO getOrderDAO(){return orderDAO;}public void setOrderDAO(TOrderDAO orderDAO){this.orderDAO = orderDAO;}public String getMessage(){return message;}public void setMessage(String message){this.message = message;}public String getPath(){return path;}public void setPath(String path){this.path = path;}}
package com.itbaizhan.action;import java.util.List;
import java.util.Map;import org.apache.struts2.ServletActionContext;import com.itbaizhan.dao.TCuxiaoDAO;
import com.itbaizhan.dao.TGoodsDAO;
import com.itbaizhan.model.TCuxiao;
import com.opensymphony.xwork2.ActionSupport;public class cuxiaoAction extends ActionSupport
{private Integer id;private String biaoti;private String neirong;private String fabushi;private TCuxiaoDAO cuxiaoDAO;public String cuxiaoAdd(){TCuxiao cuxiao=new TCuxiao();cuxiao.setBiaoti(biaoti);cuxiao.setNeirong(neirong);cuxiao.setFabushi(fabushi);cuxiaoDAO.save(cuxiao);Map request=(Map)ServletActionContext.getContext().get("request");request.put("msg", "信息添加完毕");return "msg";}public String cuxiaoMana(){String sql="from TCuxiao";List cuxiaoList=cuxiaoDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("cuxiaoList", cuxiaoList);return ActionSupport.SUCCESS;}public String cuxiaoDel(){TCuxiao cuxiao=cuxiaoDAO.findById(id);cuxiaoDAO.delete(cuxiao);Map request=(Map)ServletActionContext.getContext().get("request");request.put("msg", "信息删除完毕");return "msg";}public String cuxiaoAll(){String sql="from TCuxiao";List cuxiaoList=cuxiaoDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("cuxiaoList", cuxiaoList);return ActionSupport.SUCCESS;}public String cuxiaoDetailQian(){TCuxiao cuxiao=cuxiaoDAO.findById(id);Map request=(Map)ServletActionContext.getContext().get("request");request.put("cuxiao", cuxiao);return ActionSupport.SUCCESS;}public Integer getId(){return id;}public void setId(Integer id){this.id = id;}public String getBiaoti(){return biaoti;}public void setBiaoti(String biaoti){this.biaoti = biaoti;}public String getNeirong(){return neirong;}public void setNeirong(String neirong){this.neirong = neirong;}public String getFabushi(){return fabushi;}public void setFabushi(String fabushi){this.fabushi = fabushi;}public TCuxiaoDAO getCuxiaoDAO(){return cuxiaoDAO;}public void setCuxiaoDAO(TCuxiaoDAO cuxiaoDAO){this.cuxiaoDAO = cuxiaoDAO;}}
package com.itbaizhan.action;import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.itbaizhan.dao.TGoodsDAO;
import com.itbaizhan.model.TGoods;
import com.itbaizhan.util.Pagesize;
import com.itbaizhan.util.Pagination;
import com.opensymphony.xwork2.ActionSupport;public class goodsAction extends ActionSupport
{private Integer id;private Integer leibieId;private String mingcheng;private String jieshao;private String fujian;private Integer jiage;private Integer tejia;private String shifoutejia;private String del;private TGoodsDAO goodsDAO;public String goodsAdd(){TGoods goods=new TGoods();//goods.setId(id);goods.setLeibieId(leibieId);goods.setMingcheng(mingcheng);goods.setJieshao(jieshao);goods.setFujian(fujian);goods.setJiage(jiage);goods.setTejia(jiage);goods.setShifoutejia("no");goods.setDel("no");goodsDAO.save(goods);Map request=(Map)ServletActionContext.getContext().get("request");request.put("msg", "信息添加成功");return "msg";}public String goodsMana(){String sql="from TGoods where del='no' order by leibieId";List goodsList=goodsDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("goodsList", goodsList);return ActionSupport.SUCCESS;}public String goodsDel(){TGoods goods=goodsDAO.findById(id);goods.setDel("yes");goodsDAO.attachDirty(goods);Map request=(Map)ServletActionContext.getContext().get("request");request.put("msg", "信息删除成功");return "msg";}public String goodsAll(){String sql="from TGoods where del='no' order by id desc";List goodsList=goodsDAO.getHibernateTemplate().find(sql);HttpServletRequest request=ServletActionContext.getRequest();int index=0;if(request.getParameter("index")==null){index=1;}else{index=Integer.parseInt(request.getParameter("index"));}int fromIndex = (index - 1) * Pagesize.size;int toIndex = Math.min(fromIndex + Pagesize.size, goodsList.size());List goodsList1 = goodsList.subList(fromIndex, toIndex);Pagination p = new Pagination();p.setIndex(index);p.setPageSize(Pagesize.size);p.setTotle(goodsList.size());p.setData(goodsList1);request.setAttribute("page", p);return ActionSupport.SUCCESS;}public String goodsDetailQian(){TGoods goods=goodsDAO.findById(id);Map request=(Map)ServletActionContext.getContext().get("request");request.put("goods", goods);return ActionSupport.SUCCESS;}public String goodsByLeibie(){String sql="from TGoods where del='no' and leibieId=?";Object[] con={leibieId};Map request=(Map)ServletActionContext.getContext().get("request");List goodsList=goodsDAO.getHibernateTemplate().find(sql,con);request.put("goodsList", goodsList);System.out.println(goodsList.size()+"&&");return ActionSupport.SUCCESS;}public String goodsRes(){String sql="from TGoods where del='no' and mingcheng like '%"+mingcheng.trim()+"%'";List goodsList=goodsDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get("request");request.put("goodsList", goodsList);return ActionSupport.SUCCESS;}public Integer getLeibieId(){return leibieId;}public void setLeibieId(Integer leibieId){this.leibieId = leibieId;}public Integer getId(){return id;}public void setId(Integer id){this.id = id;}public String getMingcheng(){return mingcheng;}public void setMingcheng(String mingcheng){this.mingcheng = mingcheng;}public String getJieshao(){return jieshao;}public void setJieshao(String jieshao){this.jieshao = jieshao;}public String getFujian(){return fujian;}public void setFujian(String fujian){this.fujian = fujian;}public Integer getJiage(){return jiage;}public void setJiage(Integer jiage){this.jiage = jiage;}public Integer getTejia(){return tejia;}public void setTejia(Integer tejia){this.tejia = tejia;}public String getShifoutejia(){return shifoutejia;}public void setShifoutejia(String shifoutejia){this.shifoutejia = shifoutejia;}public String getDel(){return del;}public void setDel(String del){this.del = del;}public TGoodsDAO getGoodsDAO(){return goodsDAO;}public void setGoodsDAO(TGoodsDAO goodsDAO){this.goodsDAO = goodsDAO;}}

六、底部获取项目源码和万字论文参考(9.9¥带走)

有问题,或者需要协助调试运行项目的也可以

相关文章:

基于SSH的母婴用品销售管理系统带万字文档

文章目录 母婴商城系统一、项目演示二、项目介绍三、系统部分功能截图四、万字论文参考五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 母婴商城系统 一、项目演示 母婴商城系统 二、项目介绍 基于SSH的母婴商城系统 系统…...

说些什么好呢

大一&#xff1a;提前学C和C。学完语法去洛谷或者Acwing二选一&#xff0c;刷300道左右题目。主要培养编程思维&#xff0c;让自己的逻辑能够通过代码实现出来。 现在对算法有点感兴趣但是没有天赋&#xff0c;打不了acm&#xff0c;为就业做准备咯。 大二(算法竞赛)&#xff1…...

1301-习题1-1高等数学

1. 求下列函数的自然定义域 自然定义域就是使函数有意义的定义域。 常见自然定义域&#xff1a; 开根号 x \sqrt x x ​&#xff1a; x ≥ 0 x \ge 0 x≥0自变量为分式的分母 1 x \frac{1}{x} x1​&#xff1a; x ≠ 0 x \ne 0 x0三角函数 tan ⁡ x cot ⁡ x \tan x \cot x …...

C语言之指针进阶(3),函数指针

目录 前言&#xff1a; 一、函数指针变量的概念 二、函数指针变量的创建 三、函数指针变量的使用 四、两段特殊代码的理解 五、typedef 六、函数指针数组 总结&#xff1a; 前言&#xff1a; 本文主要讲述C语言指针中的函数指针&#xff0c;包括函数指针变量的概念、创建…...

RabbitMQ安装及配套Laravel使用

MQ MQ 全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。 为什么需要mq: 解耦:MQ能够使各个系统或组件之间解耦,降低它们之间的耦合度,提高系统的灵活性和可维护性异步处理:通过MQ可以实现异步处理,提高系统响应速度和吞…...

java在类的定义中创建自己的对象?

当在main方法中新建自身所在类的对象&#xff0c;并调用main方法时&#xff0c;会不断循环调用main方法&#xff0c;直到栈溢出 package com.keywordStudy;public class mainTest {static int value 33;public static void main(String[] args) throws Exception{String[] sn…...

掌握C++回调:按值捕获、按引用捕获与弱引用

文章目录 一、按引用捕获和按值捕获1.1 原理1.2 案例 二、弱引用2.1 原理2.2 案例一2.3 案例二&#xff1a;使用base库的弱引用 三、总结 在C回调中&#xff0c;当使用Lambda表达式捕获外部变量时&#xff0c;有两种捕获方式&#xff1a;按值捕获和按引用捕获。 一、按引用捕获…...

抖音运营_如何做出优质的短视频

目录 一 短视频内容的构成 1 图像 2 字幕 3 声音 4 特效 5 描述 6 评论 二 短视频的热门类型 1 颜值圈粉类 2 知识教学类 3 幽默搞笑类 4 商品展示类 5 才艺技能类 6 评论解说类 三 热门短视频的特征 1 产生共鸣 2 正能量 3 紧跟热点话题 4 富有创意 四 短视…...

Day21:Leetcode513.找树左下角的值 +112. 路径总和 113.路径总和ii + 106.从中序与后序遍历序列构造二叉树

LeetCode&#xff1a;513.找树左下角的值 解决方案&#xff1a; 1.思路 在遍历一个节点时&#xff0c;需要先把它的非空右子节点放入队列&#xff0c;然后再把它的非空左子节点放入队列&#xff0c;这样才能保证从右到左遍历每一层的节点。广度优先搜索所遍历的最后一个节点…...

Java数据结构和算法(B树)

前言 B树又叫平衡的多路搜索树&#xff1b;平衡的意思是又满足平衡二叉树的一些性质&#xff0c;左树大于右树&#xff1b; 多路意思是&#xff0c;可以多个结点&#xff0c;不再是像二叉树只有两个结点&#xff1b; 实现原理 B树是一种自平衡的搜索树&#xff0c;通常用于实…...

成为程序员后我都明白了什么?从入行到弃坑?

作为一个入行近10年的php程序员&#xff0c;真心感觉一切都才刚开始&#xff0c;对计算机&#xff0c;编程语言的理解也好&#xff0c;程序员中年危机也罢&#xff0c;之前都是听别人说的&#xff0c;真的自己到了这个水平&#xff0c;这个年龄才深刻体会到这其中的种种。 我一…...

python --创建固定字符串长度,先进先出

a 123def concatenate_within_limit(b, new_string):# 计算新字符串与a的长度之和a btotal_length len(a) len(new_string)# 如果长度超过1024&#xff0c;从前面删除足够的字符if total_length > 5:diff total_length - 5a a[diff:] new_string # 删除前diff个字符…...

容器化部署

目录 docker容器化部署 怎样使用Docker Compose或Kubernetes等容器编排工具来管理和扩展联邦学习系统 使用Docker Compose...

国产数据库TiDB的常用方法

TiDB的常用方法主要涉及安装配置、数据操作、性能调优以及监控和维护等方面。以下是对这些常用方法的归纳和介绍&#xff1a; 1. 安装与配置 安装TiDB&#xff1a;根据官方文档的指引&#xff0c;用户可以按照步骤进行TiDB的安装。配置TiDB&#xff1a;安装完成后&#xff0c…...

基于DdddOcr通用验证码离线本地识别SDK搭建个人云打码接口Api

前言 最近介绍了一款免费的验证码识别网站,识别效率太低,考虑到ddddocr是开源的,决定搭建搭建一个,发现原作者sml2h3已经推出好久了,但是网上没有宝塔安装的教程,于是本次通过宝塔搭建属于自己的带带弟弟OCR通用验证码离线本地识别 原项目地址:https://github.com/sml2…...

2、xss-labs之level2

1、打开页面 2、传入xss代码 payload&#xff1a;<script>alert(xss)</script>&#xff0c;发现返回<script>alert(xss)</script> 3、分析原因 打开f12&#xff0c;没什么发现 看后端源码&#xff0c;在这form表单通过get获取keyword的值赋给$str&am…...

人才测评的应用:人才选拔,岗位晋升,面试招聘测评

人才测评自诞生以来&#xff0c;就被广泛应用在各大方面&#xff0c;不仅是我们熟悉的招聘上&#xff0c;还有其他考核和晋升&#xff0c;都会需要用到人才测评。不知道怎么招聘&#xff1f;或者不懂得如何实现人才晋升&#xff1f;都可以参考人才测评&#xff0c;利用它帮我们…...

前端面试题日常练-day33 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末。 在jQuery中&#xff0c;以下哪个选项用于在元素上绑定一个点击事件&#xff1f; a) click() b) bind() c) on() d) trigger() jQuery中&#xff0c;以下哪个选项用于获取元素的属性值&#xff1f; …...

非整数倍数据位宽转换24to128

描述 实现数据位宽转换电路&#xff0c;实现24bit数据输入转换为128bit数据输出。其中&#xff0c;先到的数据应置于输出的高bit位。 电路的接口如下图所示。valid_in用来指示数据输入data_in的有效性&#xff0c;valid_out用来指示数据输出data_out的有效性&#xff1b;clk是时…...

html通过数据改变,图片跟着改变

改变前 改变后 通过数据来控制样式展示 <template><div>通过num控制图标是否更改{{num}}<div class"box"><!-- 如果num大于1则是另一种&#xff0c;样式&#xff0c;如果小时1&#xff0c;则是另一种样式 --><div class"item&qu…...

centos7.9 安装SqlServer

1、导入Microsoft SQL Server CentOS存储库&#xff1a; sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo2、安装SQL Server&#xff1a; sudo yum install -y mssql-server假如机器内存不足2G 需要对…...

Idea中flume的Interceptor的编写教程

1.新建-项目-新建项目 注意位置是将来打包文件存放的位置&#xff0c;即我们打包好的文件在这/export/data个目录下寻找 2. 在maven项目中导入依赖 Pom.xml文件中写入 <dependencies> <dependency> <groupId>org.apache.flume</groupId> <artifa…...

java单元测试:JUnit测试运行器

JUnit测试运行器&#xff08;Test Runner&#xff09;决定了JUnit如何执行测试。JUnit有多个测试运行器&#xff0c;每个运行器都有特定的功能和用途。 1. 默认运行器 当没有显式指定运行器时&#xff0c;JUnit会使用默认运行器&#xff0c;这在JUnit 4和JUnit 5之间有所不同…...

网络模型—BIO、NIO、IO多路复用、信号驱动IO、异步IO

一、用户空间和内核空间 以Linux系统为例&#xff0c;ubuntu和CentOS是Linux的两种比较常见的发行版&#xff0c;任何Linux发行版&#xff0c;其系统内核都是Linux。我们在发行版上操作应用&#xff0c;如Redis、Mysql等其实是无法直接执行访问计算机硬件(如cpu&#xff0c;内存…...

智能语义识别电影机器人的rasa实现

文章目录 0.前言1.项目整体框架2.rasa训练数据结构4.rasa启动命令及用到的API 0.前言 最近做了一个智能电影机器人的项目&#xff0c;我主要负责用户语义意图识别&#xff0c;用的框架是rasa&#xff0c;对应的版本为 3.6.15&#xff0c;对应的安装命令为: pip3 install rasa…...

C# 实现腾讯云 IM 常用 REST API 之会话管理

目录 关于腾讯 IM REST API 开发前准备 范例运行环境 常用会话管理API 查询账号会话总未读数 查询单聊会话消息记录 下载最近会话记录 小结 关于腾讯 IM REST API REST API 是腾讯即时通信 IM 提供给服务端的一组 HTTP 后台管理接口&#xff0c;如消息管理、群组管理…...

MySQL之Schema与数据类型优化(三)

Schema与数据类型优化 BLOB和TEXT类型 BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型&#xff0c;分别采用二进制和字符方式存储。 实际上它们分别属于两组不同的数据类型家族:字符类型是TINYTEXT&#xff0c;SMALLTEXT,TEXT&#xff0c;MEDIUMTEXT&#xff0c;LONG…...

大语言模型发展历史

大语言模型的发展历史可以追溯到自然语言处理&#xff08;NLP&#xff09;和机器学习早期的探索&#xff0c;但真正快速发展起来是在深度学习技术兴起之后。以下是大语言模型发展的一个简要历史概述&#xff1a; 早期阶段&#xff08;20世纪50-90年代&#xff09;&#xff1a; …...

Nginx - 安全基线配置与操作指南

文章目录 概述中间件安全基线配置手册1. 概述1.1 目的1.2 适用范围 2. Nginx基线配置2.1 版本说明2.2 安装目录2.3 用户创建2.4 二进制文件权限2.5 关闭服务器标记2.6 设置 timeout2.7 设置 NGINX 缓冲区2.8 日志配置2.9 日志切割2.10 限制访问 IP2.11 限制仅允许域名访问2.12 …...

简述js的事件循环以及宏任务和微任务

前言 在JavaScript中&#xff0c;任务被分为同步任务和异步任务。 同步任务&#xff1a;这些任务在主线程上顺序执行&#xff0c;不会进入任务队列&#xff0c;而是直接在主线程上排队等待执行。每个同步任务都会阻塞后续任务的执行&#xff0c;直到它自身完成。常见的同步任…...