基于javaweb+mysql的ssm求职招聘管理系统(java+ssm+jsp+jquery+h-ui+mysql)

基于javaweb+mysql的ssm求职招聘管理系统(java+ssm+jsp+jquery+h-ui+mysql) 私信源码获取及调试交流 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+mysql的SSM求职招聘管理系统(java+ssm+jsp+jquery+h-ui+mysql) 项目介绍 该求职招聘网站基于B/S架构,采用SSM框架,运用JSP网页开发技术,并结合MySQL数据库,为招聘者和求职者搭建了一个高效、便捷的招聘平台。 本系统分别为前台求职招聘和后台系统管理,功能如下: 1.前台求职招聘 前台首页、用户注册、用户登录、新闻公告、求职须知、求职信息、发布招聘信息、申请职位、个人中心、发布招聘信息、发布求职信息、求职申请、我的求职、意见反馈等功能。 2.后台系统管理 系统后台登陆、管理员管理、用户管理、新闻公告管理、职位类型管理、招聘职位管理、个人求职管理、求职申请管理、意见反馈管理等功能。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7/8.0等版本均可; 技术栈 后台框架:Spring、SpringMVC、MyBatis UI界面:JSP、jQuery 、H-ui 数据库:MySQL 使用说明 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目; @Autowired private JobService jobService; @RequiresRoles("admin") @PostMapping("/add") @ResponseBody public ServerResponse add(JobDTO dto) { try { dto.setCreateTime(new Date()); jobMapper.insertSelective(dto); } catch (Exception e) { return ServerResponse.buildErrorMsg("添加失败"); return ServerResponse.buildSuccessMsg("添加成功"); @RequiresRoles("admin") @DeleteMapping("/delete/{id}") model.

向量范数和矩阵范数(L1范数和L2范数)

向量范数 L1范数 权重向量 w w w 的 L1 范数,也称为曼哈顿范数或 1-范数,是一个向量的长度或模的度量。它的定义如下: 对于一个 n 维的实数向量 w = [ w 1 , w 2 , . . . , w n ] w = [w_1, w_2, ..., w_n] w=[w1​,w2​,...,wn​],其 L1 范数(Manhattan 范数)表示为: ∥ w ∥ 1 = ∣ w 1 ∣ + ∣ w 2 ∣ + . . . + ∣ w n ∣ \|w\|_1 = |w_1| + |w_2| + ... + |w_n| ∥w∥1​=∣w1​∣+∣w2​∣+.

Win10 ipv6转ipv4,ipv4转ipv6的解决办法

你们出现过ipv6优先显示转为ipv4之后,死活回不到ipv6优先吗? 非常不幸的是,我遇到了!因为计算机网络这门课,我看以前学长的报告时ipv4优先显示的,然后我想可能确实是要ipv4优先吧(别管,问就是上课没听,不知道该咋样),然后我就按照网上大神的方法,将cmd里面的ipv4优先级提高到ipv6了,这里给出该方法 步骤一:查看优先级 打开命令提示符【终端、Powershell】(Win + R,输入cmd并以管理员身份运行),然后输入以下命令: netsh interface ipv6 show prefixpolicies 此时你可以看到IPv6(::/0)的优先级比IPv4(::ffff:0:0/96)高,这就是为什么默认情况下IPv6被优先访问的原因。 步骤二:调整ipv4网络前缀的优先级 netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4 netsh interface ipv6 show prefixpolicies 将IPv4(::ffff:0:0/96)的优先级设置为最高(别超过100吧!),可以在第二个命令中再次查看。 这步结束之后,建议重启来查看是不是还会ipv6优先,如果仍然是ipv6优先,那么建议将ipv6的优先级在设置一下,(我没碰到,我不好说对不对) netsh interface ipv6 add prefixpolicy ::/0 40 1 在这一步中,如果你在show的时候丢失了ipv6或者ipv4,都可以再add,这里不过多说明。 步骤三:恢复ipv6优先显示 非常非常建议还是将他恢复,虽然说我们现在主要是ipv4的地址,但是不妨碍我们未来某个时候需要的是ipv6呢!!!比如ping www.arin.net这个外网地址,如果ipv4优先显示的话,一直会请求超时,(这至少会让我)觉得是不是连不到这个网址,但其实他是可以通的(手机热点的情况下,要是本身就不支持ipv6,那我没话说)。直接重置IPv6的命令 netsh interface ipv6 reset 别忘了重启电脑!!! 但是吧,就是这个第三步,让我崩溃了,我重置之后,发现ipv6一直显示无网络访问权限了, ping -6 [主机名] 直接请求不到主机, csdn上各个博主的方法都试了,(更新驱动、属性里都设置自动获取IP、重置winsock目录,更改注册表等等),以下方法我不知道哪一个让我的ipv6恢复了,反正第二天我连上热点的时候,惊奇的发现他连上了,反正我这里没有害人的命令,因为都是在我自己电脑上试过的,如果你也存在这个问题,就试一下吧~ 一、重置winsock目录 netsh int ip reset netsh winsock reset 最后回车即可。 二、更改注册表信息 先打开注册表,打开cmd,输入regedit,(或者直接在搜索栏搜索注册表编辑器)去查找以下目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\,找到DisabledComponents,(如果你跟我一样没有DisabledComponents,就自己新建一个,设置的值可以参照以下表) 三、网络共享中心 去控制面板下,找网络与共享中心,右键连接的WLAN,点开属性,选中ipv6协议,(我本身就是选中的,但是我依旧多试了几遍),这个主要适用windows11--这个系统好像默认是没有选择的。 或者:多禁用几次WLAN,在开启几遍! 四、自动修复网络 点击问题疑难解答-->其他疑难解答-->网络和Internet,试试看能不能修复吧。 还是说多试试几个命令,总不能真的格式化吧,我懒,我不想!最后的最后,如果这些都不行,我的建议是先等等,等他个几天(夸张了,博主的是第二天就好了,但可能情况不同)。这些的基础都是我的热点是可以支持ipv6的,要是不能支持ipv6的话,就别硬用这些了(比如你连接的是校园网~),可以先看看是否支持ipv6,下面博主给出一个链接,可以自己查一下!

〔005〕虚幻 UE5 像素流多用户部署

✨ 目录 ▷ 为什么要部署多用户▷ 开启分发服务器▷ 配置启动多个信令服务器▷ 配置启动客户端▷ 多用户启动整体流程和预览▷ 注意事项 ▷ 为什么要部署多用户 之前的像素流部署,属于单用户,是有很大的弊端的打开多个窗口访问,可以看到当一个用户操作界面的时候,另一个界面也会相应变化,这在实际项目中,多人访问同一个项目肯定是不妥的 ▷ 开启分发服务器 由于要部署多用户,就要通过一个分发服务器去分发用户的请求先打开 Matchmaker/config.json 文件,讲分发的接口统一调整成为 80然后进入 platform_scripts/cmd/ 文件夹下,点击 run.bat 启动分发服务器 { "HttpPort": 80, "UseHTTPS": false, "MatchmakerPort": 9999, "LogToFile": true, "EnableWebserver": true } ▷ 配置启动多个信令服务器 如果想多少个用户同时访问,就复制多少个信令服务器 SignallingWebServer 的包然后进入各自包中,打开配置文件 config.json 对各个信令服务器进行配置,只需要配置以下 4项 即可UseMatchmaker: 是否使用分发,这里要设置为 true,用于多用户访问时自动分配HttpPort: 用户在浏览器通过该端口进行访问像素流StreamerPort: 像素流向外流送的端口SFUPort: 转发器接口,由一个服务器和多个终端组成,收到像素流后,通过该端口转发给用户客户端,所以必须唯一,理论上可以分配 65536 个端口,但是由于其他很多端口被各种特殊软件使用,实际上能配置的端口远远小于该值最后进入各个信令服务器文件夹的 platform_scripts/cmd 下,双击 run_local.bat 启动即可 // 信令服务器1 { "UseFrontend": false, "UseMatchmaker": true, "UseHTTPS": false, "UseAuthentication": false, "LogToFile": true, "LogVerbose": true, "

使用oxylabs代理国外ip请求openai接口报错记录

报错提示: curl: (35) TCP connection reset by peer curl: (56) Recv failure: Connection reset by peer 这些报错都是因为curl版本过低(我的版本是curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0 服务器购买后的默认版本) 升级curl版本到 curl 7.61.1 或以上就可以了。

基于javaweb+mysql的jsp+servlet花店商城系统(java+servlet+jsp+jdbc+mysql)

基于javaweb+mysql的jsp+servlet花店商城系统(java+servlet+jsp+jdbc+mysql) 私信源码获取及调试交流 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+mysql的JSP+Servlet花店商城系统(java+servlet+jsp+jdbc+mysql) 项目介绍 网上花店销售系统采用JSP+Servlet+JavaBean的MVC模式,将数据对象、业务逻辑以及用户界面分离。该系统分为用户和管理员两个角色。 用户注册登录后可以浏览鲜花,浏览公告,购买鲜花,管理员登录后可以对系统进行管理和维护。 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目: 否; 技术栈 Servlet、JSP、JDBC、MySQL5.7、Tomcat8 使用说明 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,然后运行; 3. 将项目中src/com/dao/DB.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入地址; 前台地址:http://localhost:8080/flowerstore/ 普通社员账号:zhangsan 密码:123456 后台地址:http://localhost:8080/flowerstore/manage/login.jsp 管理员账号:admin 密码:123456 String sNowTime = dateFormatter.format(new java.util.Date()); imgpath = sNowTime+"."+ file.getFileExt(); file.saveAs("/uploadfile/"+imgpath); } } catch (SmartUploadException e) { e.printStackTrace(); } //通过ID获取对象 String id = request.getParameter("id"); Product bean = productDao.

数据结构算法--排序详解

引言 排序 冒泡排序 选择排序 插入排序 快速排序 希尔排序 归并排序 计数排序 基数排序 堆排序 桶排序 引言 程序 = 数据结构 + 算法 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。计算机存储、组织数据的方式。 算法:解决方案准确、完整地描述。 排序 排序:使得一串记录按照其中某个或某些关键字大小递增或递减的排列起来。 稳定 :原始序列,a在b前面且a=b,排序之后a仍然在b前面。 排序方法时间复杂度(平均)时间复杂度(最坏)时间复杂度(最好)空间复杂度稳定性冒泡稳定选择不稳定插入稳定快速不稳定希尔不稳定归并稳定计数稳定基数稳定堆不稳定桶稳定 冒泡排序 算法描述: 从第0个元素开始,依次两两比较一对元素;前一个元素大于后一个元素,则交换两个元素;重复上述步骤n - 1趟直到序列递增。 算法图解: 算法伪代码--c++: #include <iostream> using namespace std; template<typename T> void bubbleSort(std::vector<T>& arr, int len) { if (len < 2) { return; } for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr[j], arr[j + 1]); } } } } 选择排序 算法描述:

初次尝到【C知道】的甜蜜

目录 一、场景描述 二、【C知道】使用 三、【C知道】的原理 四、【C知道】的坑 一、场景描述 最近有下面的需求: mysql如何通过命令查看指定表的存储引擎 习惯性在CSDN中搜文章,自己找。 皇天不负有心人,我找到了下面这个内容,我觉得应该可用。 结果,一直错错错,如下图: 怎么办呢? 那就用下【C知道】吧! 二、【C知道】使用 (1)问题 mysql如何通过命令查看指定表的存储引擎 (2)回答 (3)我的应用 这是我想要的内容,我很满意。 三、【C知道】的原理 我从表面上看到的逻辑是: 搜索相关文章,也就是最后引用的文章; 然后通过生成式归纳总结出结论,给我们展示出来。 注:这是我能看到的逻辑,其底层逻辑,还需大牛们深挖。 四、【C知道】的坑 免费总是有限的,每日免费提问只有5次。 我是程序员娟娟, 致力将工作中遇到的问题和解决方案记录下来, 分享给更多需要的同行。 如果对你有帮助,不妨点个关注吧!

华为OD机试(B、C卷)、机考,200分的题目整理如下,冲满分必备

关于华为 od 题库的说明(2023-11-28 更新本文) 2023 年参加华为 OD 机试,你收到的短信邀请链接中提及的应该是 2022Q4 或者 2023Q1 都是 A 卷。 5月1日之后,有部分朋友收到的是 B 卷,那么恭喜你看到本文了,快抓紧刷吧。 B 卷新题库正在更新中…… O(∩_∩)O 只要是这样的试卷标题,那表示你使用的就是华为 OD 的新题库了。 华为机试有三道题,前 2 道 100 分,第 3 道 200 分,总分是 400 分。 随着时间的积累,题库内容越来越大,很多朋友现在的疑问如下: 哪些是最新题,哪些该优先刷,哪些题简单,哪些题难,题目的分数是多少 基于上述需求,橡皮擦把咱们的题库进行了一次大筛选。 关于订阅华为 OD 机试题库的后续问题 一次订阅,终身使用,后续所有更新都能看到;每篇题解都包含题目,测试示例,思路,代码等内容,如需要订阅之后可以单独讲解。 华为 OD 机试 真题,新题库,50 道 200 分题 本篇博客为大家展示 200 分【冲刺拿下】的基础题。 如果你距离 OD 机考时间不多了,那就刷这个精简版本的题库吧。 每个题解都由 6 大常见编码语言实现,订阅之后,可以私信我催更。 还可以一对一进行 OD 辅导,如果机考分数不理想,全国各地部门都可对接,捞人(独家)。 华为 od 岗的薪资待遇 华为 od 岗的薪资(OD 的 D1-D5 分别对应华为的 13-17 级)

a-table:表格组件常用功能记录——基础积累

antd+vue是我目前项目的主流,在工作过程中,经常用到table组件。下面就记录一下工作中经常用到的部分知识点。 table组件 <a-table :dataSource="tableData" :rowKey="(row) => row.id" :scroll="{ y: 550 }" bordered :pagination="pagination" @change="changeTable" :columns="columns" :defaultExpandAllRows="true" v-if="tableData && tableData.length" ></a-table> 1 实现table表格默认全部展开效果 上面的defaultExpandAllRows是默认全部展开的意思。 具体展示效果如下: 为了能够实现全部展开的效果,还添加了v-if="tableData && tableData.length" 也就是说:通过以下两行代码就可以实现表格默认展开的效果了: 1.:defaultExpandAllRows="true" 2.v-if="tableData && tableData.length 2 实现自定义标题和自定义单元格内容 const columns = [ { slots: { title: 'customTitle' }, scopedSlots: { customRender: 'time' }, width: 120, }, ] 自定义标题: <span slot="customTitle">创建时间</span> 自定义单元格内容: <div slot="time" slot-scope="text, record"> {{ record.creationTime }} </div> 3 实现日期差 getDiffTime(newdate, olddate) { if (!

<HarmonyOS第一课>ArkTS开发语言介绍--闯关习题答案

判断题 1. 循环渲染ForEach可以从数据源中迭代获取数据,并为每个数组项创建相应的组件。 正确(True) 2. @Link变量不能在组件内部进行初始化。 正确(True) 单选题 1. 用哪一种装饰器修饰的struct表示该结构体具有组件化能力?(A) A. @ComponentB. @EntryC. @BuilderD. @Preview 2. 用哪一种装饰器修饰的自定义组件可作为页面入口组件?(B) A. @ComponentB. @EntryC. @BuilderD. @Preview 多选题 1. 下面哪些函数是自定义组件的生命周期函数?(ABCDE) A. aboutToAppear B. aboutToDisappear C. onPageShow D. onPageHide E. onBackPress 2. 下面哪些装饰器可以用于管理自定义组件中变量的状态?(CD) A. @Component B. @Entry C. @State D. @Link

基于CW32F030单片机的便携式多功能测试笔

一、产品背景 在日常的硬件调试工作中,我们最常使用的仪器仪表可能就是万用表了,虽然万用表号称“万用”,但大部分时候,我们需要使用到的功能无非是电压测量和通断测量。 作为调试的“得力干将”,万用表有时候也会存在一些缺点和局限性,比如:体积较大不便于携带、无法直接反应逻辑电平情况而需要自己判断、不同型号万用表的通断档位阈值电阻不同等等,而最令人头大的,莫过于万用表的COM表笔通常需要接地,而pcb上可能没有直插孔位可以方便的固定笔尖,因此不得不用手辅助“黑表笔“,影响操作灵活性。 二、产品构思 对于这支测试笔,我对他的功能有以下期望: 1、电压测量+阈值判断,阈值电平可以根据需求自行设定满足不同逻辑电平的场景,并且保留“简易逻辑电平测试笔“好用的红绿灯提示功能; 2、通断测量,且阈值电阻可以根据需求调整 3、二极管测量,导通电压测量,并且点亮一颗二极管 4、PWM输出,方便在一些场景下提供一个已知量对系统进行测试,也可以对无源蜂鸣器等进行测试 5、PWM输入,可以对频率进行测量 6、直流输出,模拟出一个需要的直流电平进行测试 7、可以连接扩展板进行配合测量 同时,我也计划将本项目开源使更多的人用上他,或根据自己的需求进行改版再设计,因此我还额外注意了以下几点: 1、限制PCB长度在10cm以内,使大家可以在嘉立创“白嫖”PCB 2、阻容元器件均使用0603封装,LED使用0805封装,便于自己制作时进行焊接 3、项目会尽量控制成本 三、电路模块设计 我把整体分为了五个部分: 模拟前端 电源与电池管理 单片机及外设 显示屏 人机交互(不包括显示屏的其他交互) 根据模块化的设计思路,我们可以在画电路图时更加有条理,也可以在进行PCBLayout时将布局按照模块进行大致区分,以便于进行走线等操作。 本项目的电路模块设计是一种很常见的模数混合电路的设计,可以适用于许多类似的项目。 在电池管理、电源、单片机等电路模块中,本项目会尽量采用标准化设计,提升项目电路图可阅读性与可继承(复制)性。 四、具体模块设计 我们根据需求对每个部分进行细化设计,来实现既定目标。 在下面,将会结合电路图和PCB对我的设计和设计思路进行详细的说明。 1、电源与电池管理 1.1 充放电管理 在充电ic部分我选择了常用的TP4057作为主控,电源输入采用了最常见的Type-C接口,虽然在本项目中实用6P接口就已经足够,但考虑到项目扩展性,因此选择了16P接口,并借用了Type-C接口中的SBU1、SBU2引脚进行扩展板连接,之所以没有使用D+D-作为扩展线路,是因为考虑到设备的输出信号可能使得充电器误判,从而发出错误电压造成危险,这在设计中是需要考虑到的。 在电路图中,可以看见Type-C接口中的CC1、CC2接了5.1K的对地下拉电阻,这是为了在使用CC线时使充电器准确识别设备,如果使用AC线则可以不焊接R2、R3电阻。 TP4057充放电芯片的主要参数可以参考下图,在我的设计中PROG可编程恒流充电电流设置端的设置电阻为2K,充电策略较为激进。 1.2 系统上电与断电控制逻辑 系统上电逻辑较为复杂,但可以根据时序帮助理解。 在上图中,左侧是电源控制部分,中键是电量采集部分,右侧是五向摇杆开关,其中的中键是开机按键。 注意事项:在早期的版本中我犯了一个错误,我将电量检测电路设计在了开机控制电路之前(Q1之前),因此会在待机情况下造成电池电量的浪费,一开始我觉得这个漏电流很小无伤大雅,因为锂电池满电4.2V时的理论计算值也只有210μA,但我发现因为该电路连接到了后级的单片机电路,因此会通过单片机漏电,从而造成后级系统一直带有一个0.7V的低压。 下面我们结合电路图对开机时序进行分析: ① 五向开关的中键被按下,并保持按下状态 ② 被BAT+电池电压拉高的PW_ON网络通过D1对地放电 ③ MOS管AO3401(PMOS)栅极被拉低,Ug<Us ④ MOS管Q1导通,电池输出电压到LDO芯片XC6206 ⑤ XC6206输出3.3V电压,单片机得电,KEY1网络被拉高 ⑥ 由于按键保持按下,KEY1网络被拉低,单片机获得按键按下信号 ⑦ 单片机计算延时,到达阈值时间后,控制PW_CT(PF7)输出高电平 (如果延时时间未到就松手,系统断电,就不会进入后面的时序) ⑧ 三极管S8050导通,保持AO3401栅极拉低 ⑨ PW_CT持续输出高电平,三极管保持导通,系统保持得电,开机时序完成 理解了上电时序和逻辑,那就会发现关机的断电逻辑很简单:符合关机条件(无论是按键操作还是软件控制),程序控制PW_CT引脚(PF7)转为输出低电平, Q1不再导通,AO3401栅极被R7拉高,MOS管也不再导通,系统完成断电。 2、单片机及外设等 2.1 CW32单片机核心系统 标准的单片机核心系统配置,其中因为本项目不需要用到高精度时钟和低速晶振进行长时间计时,因此则省略这部分电路(这边画了,但是设置为不需要转入PCB、不导入BOM,主要是为了别的项目在使用时可以直接复制使用,主打一个CV工程师。 本项目不使用bootloader烧录,因此BOOT引脚直接拉低(标准画法可以参考被注释的部分,本项目的PCB面积较为紧张,就直接接地了)。SWD接口为PA13、PA14,本项目中通过1.0间距的排针引出,不过在实际使用中不需要焊接排针,只需要使用探针(项目工程里有探针的转接板)顶住接口就可以进行下载。排针引出接口包括SWD、RST、MCUVCC等,方便进行调试(PCB上的复位按键不能SMT焊接,因为贴片焊盘和排针直插焊盘复用,回流焊会漏锡造成虚焊甚至短路!复位按键的设计是为了在烧录完成后,确定不会再烧录的情况下焊接,既可以挡住排针的孔(没错,我有强迫症),也可以当作复位按键使用(仿佛说了一句废话),即使不焊接也可以使用镊子等金属物品短接RST和GND孔洞进行复位操作。 在io的配置方面,首先根据需求及单片机引脚功能进行io分配,优先分配需要使用到专用功能的引脚,比如ADC、SPI、TIMER、串口等,再根据布局布线进行优化调整。 在原理图绘制时,我的习惯是把io使用到的功能直接标注在MCU引脚边上(放置需要连接的网络标识符),同时使用中文进行辅助说明,这样可以在分配时防止冲突并快速调整引脚分配,也可以编程时快速找到所用引脚。

详解HTTP协议(介绍--版本--工作过程--Fiddler 抓包显示--请求响应讲解)

目录 一.HTTP协议的介绍 1.1HTTP是什么? 1.2HTTP版本的演变 二.HTTP的工作过程 三.使用Fiddler抓包工具 3.1简单讲解Fiddler 3.2Fiddler工作的原理 3.3抓包结果分析 四.HTTP请求 4.1认识URL 4.2关于URL encode 4.3认识方法 4.3.1认识get和post 4.3.2post和get的区别 五.HTTP请求分析 5.1认识请求"报头" 5.2认识请求正文 六.HTTP响应 6.1认识 "状态码" (status code) 6.2认识响应报头和响应"正文" 七.构造HTTP请求 7.1通过 form 表单构造 HTTP 请求 7.2通过ajax构造HTTP请求 🎁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 🎥 本文由 tq02 原创,首发于 CSDN🙉 🎄 本章讲解内容:HTTP的详细讲解 🎥学习专栏: C语言 JavaSE MySQL基础 多线程学习 一.HTTP协议的介绍 1.1HTTP是什么? 在TCP/IP模型当中我们学习到HTTP协议存在应用层! HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于传输层的TCP协议实现的 作用:为应用程序提供网络服务接口,可以使应用程序能够使用网络进行数据传输和接收。 1.2HTTP版本的演变 HTTP诞生于1991年,主要基于TCP协议实现的,目前HTTP的演变:从HTTP0.9到HTTP3 1.HTTP 0.9 HTTP 0.9是第一个版本的HTTP协议,已过时。它的组成极其简单,只允许客户端发送GET这一种请求,且不支持请求头。由于没有协议头,造成了HTTP 0.9协议只支持一种内容,即纯文本。 2、HTTP 1.0 HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用。相对于HTTP 0.9 增加了如下主要特性:

前端:模仿gpt对话,包括实现逐字输出效果和各种注意点

场景:vue3+TypeScript 注:文中的泛型暂时都用any代替。question.ts是外部引入的问题列表,是仿照人工智能gpt对话。此页是 左侧选择对应菜单,右侧显示内容 我的主要思路,把每次的问题和答案都放在一个数组里面,通过push方法添加,在页面上通过v-for循环,部分代码做一个展示,这样的话可以输入问题,答案会直接显示在上面。这里的centerplace还做了点赞和踩的功能。 let centerplcae=reactive<any>([]) <div class="center-question" v-for="(item,index) in centerplace" :key="item.id"> centerplace.push({ id: centerplace.length + 1, // 按照长度生成id, DateTime: formattedDate, //此时的时间 question: inputtext.value, //发送的问题 answer: AIanswer.value, //对应的答案 dianzan:ref(false),//点赞 cai:ref(false) //踩 }) 这是最原始的,现在要加入逐字输出的效果 思路:使用定时器来实现,页面上做个显示,但是还有个棘手的怎么定时器结束,东西还要正确显示在页面上,而且定时器的模板语法也要放进循环体里面,这样会导致后面输入回答的内容影响前面几次回答的内容,解决这几个的思路是:取一个新的dom元素,当定时器循环的时候,增加一个变量用于判断定时器是否在进行中,展示的是一个逐字输出的模板,当定时器结束的时候,新的dom元素获取到这个值并且展示在页面上,逐字输出的dom销毁,为了不影响后面的回答内容,在循环体里面要让定时器dom找最后一个循环即可。 上关键代码 let typedText = ref('') let testjjy = reactive<string[]>([]) let isLoading = ref(false) <div class="answer"> <p v-html="testjjy[index]" v-if="!isLastIndex(index) || isLoading == true"></p> <p v-if="isLastIndex(index) && isLoading === false" v-html="typedText"></p> </div> //取最后一次 const isLastIndex = computed(() => {

究极短的快排代码【QuickSort】

快排 QuickSort 两边向中间扫描法:取一个基点值,从左往右扫描,基点值左边所有元素小于它,遇到大于基点值的则停下,开始从右往左扫描,右边所有元素大于他,遇到小于基点值则停下,如果这时左右指针不交叉(左指针在基点左边,右指针在基点右边),则交换两个指针当前值,在每一次交换后两个指针均向右向左移动。依次递归则完成排序。 取中间值为基点,如果递归调用时将j换成i,那么x取值时需要向上取整,否则会造成边界问题 建议读者用不同的数组根据代码逻辑模拟 方便理解 void QuickSort(int a[] , int l , int r){ if ( l >= r ) return ; int i = l - 1, j = r + 1, x = a[l + r >> 1] ; //注意x的取值与下面的函数递归调用的参数有关 while( i < j ){ while( a[++i] < x ); while( a[--j] > x ); if( i < j ) swap(a[i] , a[j]); } QuickSort(a , l , j); QuickSort(a , j + 1 , r); } void QuickSort(int a[] , int l , int r){ if ( l >= r ) return ; int i = l - 1, j = r + 1, x = a[l + r + 1 >> 1] ; //注意x的取值与下面的函数递归调用的参数有关 while( i < j ){ while( a[++i] < x ); while( a[--j] > x ); if( i < j ) swap(a[i] , a[j]); } QuickSort(a , l , i - 1); QuickSort(a , i , r); } 当给的序列元素全都一样时以下两种写法时间复杂度会退化到O(n 2)

(前端)你了解shadow吗?—css属性:box-shadow、text-shadow详解

前言: css中用于设置阴影的属性有三个,分别是:box-shadow(盒子阴影)、text-shadow(文本阴影) 以及filter:drop-shadow,本篇文章着重介绍盒子阴影与文本阴影。 一、box-shadow(盒子阴影) 1、使用方式 box-shadow: (inset) h-shadow v-shadow blur spread color inset; 参数介绍: h-shadow:水平阴影位移,大于0时阴影右移,小于0时阴影左移;v-shadow:垂直阴影位移,大于0时阴影下移,小于0是阴影上移;blur:可选参数,阴影模糊半径,值越大颜色越淡,阴影越模糊,为正值,默认为0;spread:可选参数,阴影扩散半径,值越大阴影面积越大,可正可负,默认为0;color:可选参数,阴影颜色,默认为黑色;inset:可选参数,内阴影,一般放在开头或末尾 2、使用示例 定义一个div盒子模型: <div class="shade"></div> 盒子样式为: div { width: 500px; height: 500px; margin: 100px auto; background-color: #dbdbdb; } 首先设置一个右移50px,下移50px的阴影: .shade { box-shadow: 50px 50px skyblue; } 运行结果如下: 我们对阴影进行一下更改,设置模糊半径与扩散半径为20px: .shade { box-shadow: 50px 50px 20px 20px skyblue; } 再设置一下内阴影: .shade { box-shadow: 50px 50px 20px 20px skyblue inset; } 设置inset内阴影的变化过程是怎样的呢?我们分以下几个步骤来解释: (1)假设我们将阴影的水平和垂直位移,以及模糊、扩散半径都去除,即设定以下样式: .shade { box-shadow: 0px 0px 0px 0px skyblue inset; } 这个时候可想象为我们的div盒子覆盖在阴影之上,且阴影与盒子大小一致。

pandas分组选中最大值并且新增列

题目 根据每个session_id分组,将popular最大的值设为这个session中所有popular的值 category item_id label popular session_id 0 4729 True 53.0 4069 0 4729 True 53.0 4069 0 4729 True 53.0 4069 0 5140 True 351.0 4069 0 5140 True 351.0 4069 0 5140 True 351.0 4069 0 5140 True 351.0 4069 0 5210 True 25.0 9797 0 5210 True 25.0 9797 0 5210 True 25.0 9797 0 4999 True 8.0 9797 0 4999 True 8.0 9797 0 604 True 10.

线程-Thread类及常见方法

目录 一、创建线程 1.继承 Thread 类 2. 实现 Runnable 接口 3.匿名内部类创建 Thread 子类对象 4. 匿名内部类创建 Runnable 子类对象 5. lambda 表达式创建 Runnable 子类对象 二、Thread 类及常见方法 2.1 Thread 的常见构造方法 2.2 Thread 的几个常见属性 2.3 启动一个线程-start() 2.4 中断一个线程 2.5 等待一个线程-join() 三. 线程的状态 若想了解线程的基本概念,请参照另一篇博文 :进程和线程 一、创建线程 1.继承 Thread 类 1) 继承 Thread 来创建一个线程类 . class MyThread extends Thread { @Override public void run() { System.out.println("这里是线程运行的代码"); } } 2) 创建 MyThread 类的实例 Thread t = new MyThread(); 3) 调用 start 方法启动线程

基于微信小程序的网上购物平台小程序的设计与实现 服务器端口php+mysql(附源码 调试 文档)

基于微信小程序的网上购物平台小程序 一、引言二、国内外研究现状三、系统需求分析四、系统设计五、系统实现六、系统测试与评估七、结论八、界面展示九、源码获取 摘要 本文介绍了一种基于微信小程序的网上购物平台小程序,该系统主要分为两种用户角色,分别是管理员和用户。管理员主要负责分类管理、商品管理、订单管理、评价管理和系统管理等操作,而用户主要进行商品搜索、分类筛选、商品详细信息查看、在线下单、购物车管理和我的订单等操作。本系统采用了PHP语言和ThinkPHP5框架进行服务器端开发,使用mysql数据库进行数据存储。本文对系统的需求分析、设计、实现和测试进行了详细的阐述,旨在为基于微信小程序的网上购物平台小程序的设计与实现提供一种新的解决方案。 一、引言 随着移动互联网的普及,网上购物已经成为人们日常生活的一部分。微信小程序作为一种轻量级的应用程序,具有方便快捷、即用即走的特点,深受广大用户的喜爱。因此,开发一种基于微信小程序的网上购物平台小程序,可以满足用户在移动端购物的需求,同时提高购物的便捷性和效率。本文介绍的《基于微信小程序的网上购物平台小程序》旨在实现这一目标,同时提高管理员对商城的管理效率和用户的使用体验。 二、国内外研究现状 在国内外,许多学者和企业已经开展了关于微信小程序和网上购物平台的研究。这些研究主要集中在系统架构、用户界面和数据库设计等方面。一些研究通过引入云计算等技术,实现了大规模存储和管理;另一些研究则通过引入人工智能技术,实现了智能推荐和智能管理等功能;还有一些研究则通过引入社交网络的概念,实现了用户之间的互动和交流。这些研究为《基于微信小程序的网上购物平台小程序》的设计与实现提供了有益的参考和借鉴。 三、系统需求分析 本系统分为两种用户角色,分别是管理员和用户。每种用户角色具有不同的功能需求。 管理员功能需求:管理员可以进行分类管理、商品管理、订单管理、评价管理和系统管理等操作。具体来说,管理员可以添加、删除和修改商品分类信息,可以添加、删除和修改商品信息,可以查看和删除订单信息,可以查看和修改评价信息,可以设置系统参数等。用户功能需求:用户可以进行商品搜索、分类筛选、商品详细信息查看、在线下单、购物车管理和我的订单等操作。具体来说,用户可以搜索商品信息并按照分类筛选商品,可以查看商品详细信息如价格、描述、图片等,可以添加商品到购物车并进行结算,可以查看我的订单信息等。 四、系统设计 架构设计:本系统采用三层架构模式,包括数据访问层(DAL)、业务逻辑层(BLL)和表示层(Web)。数据访问层负责与数据库进行交互,业务逻辑层负责处理业务逻辑,表示层负责与用户进行交互。数据库设计:本系统采用mysql数据库进行数据存储,包括分类表、商品表、订单表、评价表等。通过编写PHP程序和SQL语句,实现数据的增删改查操作。模块设计:本系统分为管理员模块和用户模块两个部分,每个部分又细分为多个子模块,如管理员管理模块、商品管理模块等。每个模块都有相应的操作界面和逻辑处理程序。安全性设计:本系统采用多种方式保障安全性,包括用户身份验证、权限管理、数据加密等。管理员和用户只有通过身份验证才能访问系统,并且只能访问自己有权限的功能模块。同时,系统对敏感操作进行了安全审计,确保系统的安全性。可扩展性设计:本系统采用模块化设计方法,方便进行功能扩展和升级。未来可以根据需求添加新的功能模块,提高系统的可扩展性。同时,系统采用了响应式布局设计思路,适应不同设备的访问需求。 五、系统实现 开发环境:本系统采用ThinkPHP5框架和PHP语言进行服务器端开发,使用mysql数据库进行数据存储。客户端采用微信小程序框架进行开发。关键技术:本系统采用了ThinkPHP5框架提供的路由功能实现URL地址的映射;使用了PHP语言编写SQL语句对数据库进行操作;使用了微信小程序提供的API接口实现小程序的功能。功能实现:管理员模块包括分类管理、商品管理、订单管理、评价管理和系统管理等功能的实现;用户模块包括商品搜索、分类筛选、商品详细信息查看、在线下单、购物车管理和我的订单等功能的实现。界面实现:本系统的界面设计简洁明了,易于操作。管理员的界面以白色为主色调,注重信息的展示和操作方便性;用户的界面以蓝色为主色调,注重信息的分类和视觉舒适度。同时,系统的响应式布局设计思路也使得不同设备的用户都可以得到良好的使用体验。安全性实现:本系统采用了多种方式保障安全性,包括用户身份验证、权限管理、数据加密等。管理员和用户只有通过身份验证才能访问系统,并且只能访问自己有权限的功能模块。同时,系统对敏感操作进行了安全审计,确保系统的安全性。可扩展性实现:本系统采用模块化设计方法,方便进行功能扩展和升级。未来可以根据需求添加新的功能模块,提高系统的可扩展性。同时,系统采用了响应式布局设计思路,适应不同设备的访问需求。 六、系统测试与评估 功能测试:对系统的各个功能模块进行测试,包括管理员模块和用户模块,验证系统功能的正确性和稳定性。测试结果表明,系统在功能方面表现良好,能够满足用户的需求。性能测试:对系统的性能进行测试,包括响应速度、负载能力和稳定性等。测试结果表明,系统在响应速度、负载能力和稳定性等方面均表现出色,能够满足用户的需求。安全性测试:对系统的安全性措施进行测试,包括用户身份验证、权限管理等。测试结果表明,系统的安全性措施均能够有效地保障系统的安全性。兼容性测试:测试系统在不同浏览器、操作系统和设备上的运行情况,验证系统的兼容性。测试结果表明,系统在不同平台上均能够正常运行,满足不同用户的需求。评估结果:经过功能测试、性能测试、安全性测试和兼容性测试等多方面的评估测试,结果表明本系统具有较高的性能和可靠性,能够满足用户的需求。同时,本系统的设计方法和实现技术具有一定的参考价值,可以为类似系统的设计和实现提供一定的借鉴和参考。 七、结论 本文介绍了一种基于微信小程序的网上购物平台小程序的设计与实现。该系统主要分为两种用户角色,分别是管理员和用户。管理员主要负责分类管理、商品管理、订单管理、评价管理和系统管理等操作,而用户主要进行商品搜索、分类筛选、商品详细信息查看、在线下单、购物车管理和我的订单等操作。本系统采用了PHP语言和ThinkPHP5框架进行服务器端开发,使用mysql数据库进行数据存储。本文对系统的需求分析、设计、实现和测试进行了详细的阐述,旨在为基于微信小程序的网上购物平台小程序的设计与实现提供一种新的解决方案。未来研究方向可以包括引入人工智能技术优化推荐算法提高推荐的精准度;完善移动端体验优化小程序的用户界面和交互设计提高用户的使用体验;引入大数据技术对系统运行数据进行实时分析和挖掘为决策提供数据支持等。 八、界面展示 九、源码获取 欢迎大家点赞、收藏、关注、评论、批评啦 、查看👇🏻👇🏻获取联系方式👇🏻👇🏻A3587H

字符串移位包含问题(strstr+c_str)C++

#include <bits/stdc++.h> using namespace std; string a, b; int main() { cin >> a >> b; if (a.size() < b.size()) swap(a, b); string c = a + a; if (c.find(b) != string::npos) cout << "true" << endl; else cout << "false" << endl; return 0; } #include <bits/stdc++.h> using namespace std; string a, b; int main() { cin >> a >> b; if (a.size() < b.size()) swap(a, b); string c = a + a; if (strstr(c.