当前位置: 首页 > 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…...

Office RibbonX Editor:让Office界面定制变得像搭积木一样简单

Office RibbonX Editor&#xff1a;让Office界面定制变得像搭积木一样简单 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbon…...

销售怎么通过各种方法获取电话号码

第一种就是那个用爬虫电话号码&#xff0c;然后再打电话给客户。第二种是在别人的挪车电话看车挪车电话&#xff0c;然后再打电话找客户。第三就是。扫楼一顿顿的扫&#xff0c;第四就是这个那种商店&#xff0c;一个个的去问陌拜地推一个个的问店子要不要贷款&#xff0c;去问…...

Python PIL 画矩形框

基础代码 from PIL import Image, ImageDraw# 打开图片 img Image.open(your_image.jpg)# 创建绘图对象 draw ImageDraw.Draw(img)# 矩形坐标 (x1, y1, x2, y2) coords (23, 21, 69, 76)# 画矩形框&#xff08;红色&#xff0c;线宽2&#xff09; draw.rectangle(coords, ou…...

保姆级避坑指南:在Ubuntu 22.04上搞定ROS2 Humble、PX4与Gazebo的联合仿真(附Empy版本降级)

保姆级避坑指南&#xff1a;Ubuntu 22.04下ROS2 Humble与PX4联合仿真的21个关键陷阱当你在Ubuntu 22.04上第一次尝试搭建ROS2 Humble、PX4与Gazebo的联合仿真环境时&#xff0c;可能会遇到比预期更多的挑战。这不是一个简单的"复制粘贴命令就能完成"的任务——版本冲…...

Matlab,plot绘图如何添加边框

matlab生成的图——编辑(E)——坐标区属性(A)——框样式——Box&#xff0c;勾选效果&#xff1a;...

Git Bash 中无法启动 Claude Code ?

最近需要在 git bash 中跑 Claude Code 。git bash 是随 git for windows 套件安装的&#xff0c;很久没更新了&#xff0c;结果启动 Claude Code 报错&#xff1a;Warning: no stdin data received in 3s, proceeding without it. If piping from a slow command, redirect st…...

仅限首批200位架构师获取:DeepSeek-DDD联合建模工作坊实录(含领域事件风暴原始会议录像+决策日志)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek领域驱动设计的范式演进与本质洞察 DeepSeek作为面向大规模智能体协同与复杂业务语义建模的新一代AI原生架构&#xff0c;其领域驱动设计&#xff08;DDD&#xff09;实践已突破传统分层单体范式&…...

[特殊字符] 高效统计排序数组中目标元素的出现次数

给定一个已排序的数组和一个目标值&#xff0c;如何快速统计该目标值在数组中出现的次数&#xff1f;这是面试中非常经典的一道题&#xff0c;今天就来聊聊两种解法&#xff1a;线性搜索和二分搜索。 问题描述 假设有一个已排序的数组 arr[] 和一个整数 target&#xff0c;需…...

三步解锁WeMod专业版:终极本地增强工具配置指南

三步解锁WeMod专业版&#xff1a;终极本地增强工具配置指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的订阅费用烦恼吗&#xf…...

技术人如何建立“学习飞轮”?让每次学习都推动下一次

在软件行业&#xff0c;有一种普遍的焦虑叫做“测试工程师的35岁危机”。这种焦虑的根源&#xff0c;往往不是年龄本身&#xff0c;而是能力栈的停滞——你是在用十年的经验做重复的事&#xff0c;还是真正拥有了十年的成长&#xff1f;同样是功能测试的起点&#xff0c;有人三…...