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

小白学习java第16天(上): javaWeb

0.背景介绍

1.前言

首先我们需要javaweb里面的大概流程是干什么的,怎么才能实现的?,每一部分是靠什么进行的?以及背后实现的功能是干什么的?。。。。对于我来说要是不解决这些,会让我感觉不踏实!

首先既然是web开发,那么就是势必需要对于页面进行处理,你打开一个网站上面会出现两部分,一部分就是静态的网页(html,css,js)所有人都可以看到的页面!如百度的官网页面;但是另外一部分就是动态web,你要是进行登录就是呈现每个人都不一样的页面,(技术栈就是servlet,jsp,PHP。。),即:提供给所有人的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各有不同!,动态web资源开发的技术统称为javaweb!

2.web应用程序

web应用程序:可以提供浏览器的访问程序。(需要理解就是我们能访问到的任何一个页面或者资源,都存在于这个世界某个角落的计算机上)

(不知道大家有没有和我一样的,服务器到底是什么呢,是一个计算机吗?)

这里就需要介绍tomcat服务器,tomcat可以理解为一个专门运行java网站程序的容器,它好像网站的“管家”,负责协调协调和管理用户访问网站的各种操作!那么里面真正进行处理执行的是什么呢?

1.环境搭建

1.1.Tomcat

1.1.1安装Tomcat

tomcat官网

tomcat下载,我下载是第9版本的!(64位的window)

1.1.2开始启动和关闭tomcat

这里有一个小细节就是你的端口号8080是不是被占用了,怎么判断是不是被占用了?

步骤:

1.打开cmd,查看端口号*(去任务管理器的服务中查看)

2.确实被我自己的浏览器服务占用,因此我们需要改端口号

3.然后我们就去tomcat文件夹下面去找config,里面的server文件,将里面的端口号进行修改,我改的是8081端口(最后搜一下就能出现小猫就算成功!!! )

然后就会出现(下面这个界面)

(那么为什么会这样的?)

首先我们看tomcat里面的配置文件下面的config文件里面的server配置

(端口号!)

(里面的执行文件)就是默认的去webapp里面去找,默认的里面的文件夹root

=========================================================================

回答网站是如何进行访问的???

 1.输入域名,回车!

2.检查本机的C:\Windows\System32\drivers\etc\hosts配置文件有没有这个域名映射;

2.1有,直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

2.2 没有;去DNS服务器找,找到的话就返回,找不到就返回找不到!

流程图如下:

=========================================================================

1.2.Maven

1.2.1我们为什么需要学习maven?

javaweb在开发中需要使用大量的jar包,手动的就太麻烦了,我觉得python简单是因为他可以使用自动导包很舒服,因此maven诞生!,他是一个工具他是一个架构的管理工具

maven的核心思想就是:约定大于配置。maven会规定好你该如何编写java代码!

1.2.2maven的下载安装和使用(我用的是3.6.3版本的)

打开官网进行下载:https://maven.apache.org/download.cgi

1.2.3配置环境:(老套路)

1.M2_HOME  Maven目录下的bin目录

2.MAVEN_HOME  Maven的目录

3.在系统中path配置 %Maven_HOME%/bin

测试:

1.2.4阿里云镜像:

修改一下镜像,因为访问国外的比较慢,因此我们需要镜像mirrors :加速我们的下载!

在config文件里面的setting里面找到mirrors里面进行!(下载下面这个代码!)

<!--下面是配置内容--><mirror><id>nexus-aliyun</id><mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>

1.2.5本地仓库

建立一个本地的仓库,创建一个文件夹maven-repo

然后再配置文件中添加配置:

1.2.6在idea中使用maven

网上有很多类似的资料进行解释https://www.cnblogs.com/bjynjj/p/18494523,可以详细参考这个

run里面显示这个就算成功了!(我们是勾选了web的框架模版的)

3.写第一个servlet程序

3.1编写一个servlet程序

首先我们需要知道servlet这个接口,然后再看他实现类

大概流程图就是

                                  

实现的代码:

public class HelloServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("响应!");PrintWriter writer = resp.getWriter();//响应流writer.print("hello servlet");}
}

那你现在写了java程序,怎么执行呢!我们的浏览器里面需要输入什么就可以显示这个呢?

代码:

 <!-- 配置servlet --><servlet><servlet-name>hello</servlet-name><servlet-class>com.xcl.servlet.HelloServlet</servlet-class></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>

然后就是在idea中启动tomcat!(按照上面进行配置就行!)

3.

3.2servlet的原理:

                  

3.3web.xml中的mapping映射

一个请求指定一个映射路径

一个请求指定多个映射路径

  <!-- 配置servlet --><servlet><servlet-name>hello</servlet-name><servlet-class>com.xcl.servlet.HelloServlet</servlet-class></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello1</url-pattern></servlet-mapping>

一个请求指定通用的映射路径

  <!-- 配置servlet --><servlet><servlet-name>hello</servlet-name><servlet-class>com.xcl.servlet.HelloServlet</servlet-class></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/*</url-pattern></servlet-mapping>

一个请求指定通用后缀映射路径-

  <!-- 配置servlet --><servlet><servlet-name>hello</servlet-name><servlet-class>com.xcl.servlet.HelloServlet</servlet-class></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello/*</url-pattern></servlet-mapping>

3.3ServletContext对象,这就是我们之后要操作的对象

就是我们不同servlet之间怎么进行通信呢?这就需要一个中间商进行之间的传递!

3.3.1代码演示(共享数据):

先是上传到上下文:

public class HelloServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext servletContext = this.getServletContext();//获得上下文String username = "张三";servletContext.setAttribute("username", username);//传入到上下文里面System.out.println("hello,响应完成!");}
}

然后从上下文进行取出来:

public class GetServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext servletContext = this.getServletContext();//获得上下文String username = (String) servletContext.getAttribute("username");//获取上下文里面的内容resp.setContentType("text/html;charset=utf-8");PrintWriter writer = resp.getWriter();writer.print("名字:" + username);}
}

3.3.2(请求转发,url是不会变的)

(这样是不是比较麻烦啊,我还需要在网页上面进行手动输入getC,因此我们需要再hello里面进行转发)

public class HelloServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext servletContext = this.getServletContext();//获得上下文String username = "张三";servletContext.setAttribute("username", username);//传入到上下文里面System.out.println("hello,响应完成!");RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher("/getC");//进行转发requestDispatcher.forward(req, resp);}
}

为什么url不变,那就需要我们知道转发和跳转有哪些不一样

3.4读取配置文件

配置文件放在资源目录下面!

package com.xcl.servlet;import com.sun.xml.internal.stream.buffer.sax.Properties;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;public class ServletDemo01 extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//读取流servletContext流文件InputStream resourceAsStream = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");//properties读取java.util.Properties properties = new java.util.Properties();properties.load(resourceAsStream);String user = properties.getProperty("username");String password = properties.getProperty("password");System.out.println("user:"+user);System.out.println("password:"+password);resp.getWriter().print(user + ":" + password);}
}

相关文章:

小白学习java第16天(上): javaWeb

0.背景介绍 1.前言 首先我们需要javaweb里面的大概流程是干什么的&#xff0c;怎么才能实现的&#xff1f;&#xff0c;每一部分是靠什么进行的&#xff1f;以及背后实现的功能是干什么的&#xff1f;。。。。对于我来说要是不解决这些&#xff0c;会让我感觉不踏实&#xff…...

vue 打包设置

1、vue webpack配置 filename: [path][base].gz,// 设置成这样就行了 const { defineConfig } require(vue/cli-service)const debug process.env.NODE_ENV ! productionconst CompressionWebpackPlugin require(compression-webpack-plugin)const TerserPlugin require(…...

Excel如何安装使用EPM插件并且汉化?

Excel如何使用EPM插件 Excel如何使用EPM插件一、安装EPM插件二、启动EPM插件三、插件汉化设置 Excel如何使用EPM插件 一、安装EPM插件 在安装EPM插件时&#xff0c;若运行安装包后出现报错提示&#xff0c;通常是因为系统缺少 Visual Studio 2010 组件&#xff0c;需先安装该…...

在Linux中使用fcntl函数和ioctl函数

特性fcntlioctl作用对象文件描述符&#xff08;通用文件操作&#xff09;设备文件&#xff08;硬件或驱动控制&#xff09;标准化程度POSIX 标准&#xff0c;行为一致设备相关&#xff0c;无统一标准典型场景文件锁、非阻塞模式、描述符复制终端控制、网络配置、硬件操作移植性…...

ESP32-S3 入门学习笔记(四):LED实验

ESP32-S3 入门学习笔记&#xff08;四&#xff09;&#xff1a;LED实验 开发板&#xff1a;正点原子ESP32S3 B站学习链接&#xff1a;link 1. GPIO&LED 简介 1.1 GPIO 简介 GPIO 是负责控制或采集外部器件信息的外设&#xff0c;主要负责输入输出功能。以下是ATK-MWS3S…...

clickhouse#复制修改数据

需求 在ClickHouse表中存在一些数据&#xff0c;你需要复制其中几行数据&#xff0c;这个复制不是完全复制&#xff0c;额外需要修改其中某几列数据项。 语句 INSERT INTO xxx_table SELECT * REPLACE ({except_value_1} AS {column_name_1},...{except_value_n} AS {colum…...

Java安全之cc链学习集合

CC1 InvokerTransformer https://blog.csdn.net/weixin_53912233/article/details/137786954 LazyMap https://blog.csdn.net/weixin_53912233/article/details/137787763 CC1链学习记录_cc1 链子 学习-CSDN博客 Java反序列化Commons-Collections篇02-CC1链补充 | Drunk…...

分享:google高级搜索常用的4个入口

网站和文件&#xff1a;google.com/advanced_search图片&#xff1a;google.com/advanced_image_search视频&#xff1a;google.com/advanced_video_search书籍&#xff1a;google.com/advanced_book_search...

内存四区(堆)

在上一次分享中&#xff0c;我和大家分享了栈区&#xff0c;今天栈区来了。 而内存四区中&#xff0c;堆区是干嘛的呢&#xff1f; 堆区&#xff0c;也是用来存放数据的&#xff0c;只不过呢&#xff0c;堆区中的数据的生死存亡是由程序员来控制的。 当然如果你一直不管堆区…...

Ldap高效数据同步- MirrorMode双主复制模式配置详解(下)

#作者&#xff1a;朱雷 上篇&#xff1a;《Ldap高效数据同步- MirrorMode双主复制模式配置详解&#xff08;上&#xff09;》 链接: link 文章目录 三、配置Mirror复制类型3.3. 在ldap-0上增加test2用户3.4. 在ldap-1上查看3.5. 在ldap-1上增加test4用户3.7. 最终两台LDAP数据…...

亚组风险比分析与可视化

1. 结果解读 1.1 风险比概述 1.1.1 风险比基本概念 风险比(Hazard Ratio)用于衡量治疗组与对照组事件发生的风险差异。 风险比为1,表示两组风险相同;小于1,治疗组风险低;大于1,治疗组风险高。 1.1.2 性别亚组分析 A性风险比小于1,表明治疗对A性有积极效果,风险降低。…...

2个小时1.5w字| React Golang 全栈微服务实战

文章目录 前言Golang 入门教程1. 下载与环境配置安装 GoWindows 安装macOS 安装Linux 安装 理解 GOROOT 和 GOPATHGOROOTGOPATHGo Modules 与 GOPATH 的关系查看和设置 Go 环境变量 配置 GOPATH 2. 语法与包管理Go 基础语法运行 Go 程序构建 Go 程序包管理 (Go Modules)常用标准…...

Spring security详细上手教学(三)密码管理

Spring security详细上手教学&#xff08;三&#xff09;密码管理 本章节两部分内容 实现PasswordEncoder使用Spring Security Crypto模块提供的工具 1. 使用 password encoder 通常&#xff0c;系统不会使用纯文本来保存密码&#xff0c;需要进行加密/哈希等一系列处理以加…...

ADC读取异常情况汇总

MCU ADC读取内部参考电压 Vrefint 如果某个输入引脚的电压高于供电电压&#xff0c;可能存在读取内部参考电压数值不准或者读数是4095。 虽然宽电压支持&#xff0c;最好硬件设计硬件避免这种情况&#xff0c;避免异常情况。...

给函数参数设置默认值的方式

在 JavaScript 中&#xff0c;给函数参数设置默认值主要有以下几种方式&#xff1a; 1. 函数体内手动检查赋值&#xff08;ES5 及以前&#xff09; 在函数内部检查参数是否为 undefined&#xff0c;然后手动赋值默认值。 function greet(name, age) {name name ! undefined…...

【C语言】内存分配的理解

很多时候我们声明变量&#xff0c;系统就自动为我们处理好了内存。 这主要取决于内存分配发生的时间和内存区域。C语言中主要有以下几种内存分配方式&#xff1a; 栈 (Stack) 内存分配 (自动内存): 何时发生: 在函数内部声明的非static局部变量&#xff08;包括基本类型如 int…...

特征工程四:数据特征提取TfidfVectorizer的使用

TfidfVectorizer 深度解析 TfidfVectorizer 是 scikit-learn 中用于文本特征提取的核心工具&#xff0c;它将原始文本转换为 TF-IDF 特征矩阵&#xff0c;是自然语言处理(NLP)和文本挖掘的基础组件。 一、核心原理 1. TF-IDF 计算 TF (Term Frequency)&#xff1a;词频&…...

深度学习涉及的数学与计算机知识总结

深度学习涉及的数学与计算机知识可总结为以下核心模块&#xff0c;结合理论与实践需求分为数学基础和计算机技能两大方向&#xff1a; 一、数学知识 线性代数 核心&#xff1a;矩阵运算&#xff08;乘法、转置、逆矩阵&#xff09;、向量空间、特征值与特征向量、奇异值分解&am…...

引领印尼 Web3 变革:Mandala Chain 如何助力 1 亿用户迈向数字未来?

当前 Web3 的发展正处于关键转折点&#xff0c;行业亟需吸引新用户以推动 Web3 的真正大规模采用。然而&#xff0c;大规模采用面临着核心挑战&#xff1a;数据泄露风险、集中存储的安全漏洞、跨系统互操作性障碍&#xff0c;以及低效的服务访问等问题。如何才能真正突破这些瓶…...

Mysql从入门到精通day6————时间和日期函数精讲

关于Mysql的日期和时间计算函数种类非常繁多,此处我们对常用的一些函数的用法通过实例演示让读者体会他们的用法,文章末尾也给出了时间和日期计算的全部函数 函数1:curdate()和current_date()函数 作用:获取当前日期 select curdate(),current_date();运行效果:...

C#如何正确的停止一个多线程Task?CancellationTokenSource 的用法。

在 C# 中停止一个 Task 需要谨慎处理&#xff0c;因为直接强制终止&#xff08;如 Thread.Abort()&#xff09;会导致资源泄漏或状态不一致。推荐使用 ​​协作式取消&#xff08;Cooperative Cancellation&#xff09;​​ 通过 CancellationToken 实现安全停止。以下是详细方…...

【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计

一、实现&#xff1a; Zset有序集合是一种由 跳表(Skip List)哈希表(Hash Table) 实现的数据结构。 二、特点功能&#xff1a; Set特性排序 三、跳表与哈希表分析&#xff1a; Zset的实现由两个数据结构&#xff1a; 1.跳表(Skip List)&#xff1a;用于存储数据的排序和快…...

【前端】jQuery 对数据进行正序排列

你可以使用 jQuery 对数据进行正序排列&#xff08;按 jbsj 升序&#xff09;。以下是完整的代码示例&#xff1a; <!DOCTYPE html> <html> <head><title>按时间排序</title><script src"https://code.jquery.com/jquery-3.6.0.min.js&…...

Matlab 报错:尝试将 SCRIPT vl_sift 作为函数执行:

问题描述&#xff1a; 运行matlab程序出现报错&#xff1a; 警告: 名称不存在或不是目录: xxx\vlfeat-0.9.21\toolbox\mex\mexw64 xxxx 尝试将 SCRIPT vl_sift 作为函数执行: xxxx\vlfeat-0.9.21\toolbox\sift\vl_sift.m原因分析&#xff1a; 缺少 \vlfeat-0.9.21\toolbox…...

前端权限管理

前端权限 本质上就是控制前端视图层的展示和前端所发送的请求 一、RBAC 用户&#xff08;User&#xff09;&#xff1a;系统的使用者 角色&#xff08;Role&#xff09;&#xff1a;权限的集合&#xff08;如管理员、普通用户&#xff09;。 权限&#xff08;Permission&am…...

【PVR】《Adaptive Palm Vein Recognition Method》

[1]程良彬.自适应的手掌静脉识别方法研究[D].桂林电子科技大学,2023.DOI:10.27049/d.cnki.ggldc.2023.000681. 文章目录 1、Background and Motivation2、Related Work3、Advantages / Contributions4、Method4.1、Datasets and Metrics4.2、基于最大化手掌内切圆的感兴趣区域提…...

MLLM之Bench:LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略

MLLM之Bench&#xff1a;LEGO-Puzzles的简介、安装和使用方法、案例应用之详细攻略 目录 LEGO-Puzzles的简介 1、LEGO-Puzzles的特点 LEGO-Puzzles的安装和使用方法 1、安装 步骤 0&#xff1a;安装 VLMEvalKit 步骤 1&#xff1a;设置 API 密钥&#xff08;可选&#xf…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据信息查看操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili DataFrame的基础信息和统计性信息。在我们拿到一 个数据集&#xff0c;用Pandas载入后&#xff0c;需要做一些初步的…...

【大模型微调与应用开发实战指南】从理论到工业级部署

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;LoRA微调&#xff09;运行结果验证 三、性能对比测试方法论量化数据对比结果分析 四、…...

动手学深度学习11.10. Adam算法-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:72 优化算法【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址:11.10. Adam算法 — 动手学深度学习 2.0.0 documentation 本节开源代码…...

Spring Boot API版本控制实践指南

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在API迭代过程中&#xff0c;版本控制是保障系统兼容性的重要机制。合理的版本控制策略可以帮助开发团队平滑过渡接口变更&#xff0c;同时支持多版本客…...

如何让自己的博客可以在百度、谷歌、360上搜索到(让自己写的CSDN博客可以有更多的人看到)

发现自己写的博客文章名复制&#xff0c;然后粘贴到百度进行搜索&#xff0c;发现搜索不到自己的&#xff0c;但是会显示其他人的CSDN博客。于是查找相关资料&#xff0c;整理出以下搜索引擎资源收录入口&#xff0c;把自己的文章链接输入进去&#xff0c;然后经过审核通过后&a…...

Transformer

一、为什么需要Transformer&#xff1f;先看传统模型的痛点​​ 1. ​​传统模型&#xff1a;RNN与CNN的短板​​ ​​RNN&#xff08;循环神经网络&#xff09;​​&#xff1a;逐个处理单词&#xff0c;像流水线作业。 ​​问题​​&#xff1a;速度慢&#xff08;无法并行&…...

LeetCode热题100--438.找到字符串中所有字母异位词--中等

1. 题目 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s “cbaebabacd”, p “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。 起始…...

仿微信上传头像,实现拍摄、相册选择、手动缩放、裁剪、蒙版、撤回、还原、上传微信本地文件功能

目前功能基于wx-cropper进行开发&#xff0c;wx-cropper 是一个基于微信小程序的图片裁剪工具 项目地址&#xff1a;gitcode地址 一、触发入口标签 <t-cell hover arrow class"userCell" catchtap"handleChangeHeadImg"><view slot"title&…...

Python 操作 Excel 插入图表:解锁数据可视化的高效密码

Python 操作 Excel 插入图表&#xff1a;解锁数据可视化的高效密码 在数据分析与展示的领域中&#xff0c;Python 凭借其强大的库支持&#xff0c;成为众多开发者与数据工作者的得力助手。将图表嵌入 Excel 文件&#xff0c;不仅能丰富数据呈现形式&#xff0c;还能让信息传递…...

python实战项目66:抓取考研招生专业信息

python实战项目66:抓取考研招生专业信息 一、流程分析二、完整代码一、流程分析 考研招生专业信息所在网页主页如下图: 在搜索框中输入所需查询的专业 点击“开设院校”,如下图所示: 打开浏览器开发者工具抓包,刷新页面,找到xhr数据包。 首先,在zydws.do数据包中抓…...

Awesome-Embodied-AI: 具身机器人的资源库

&#x1f4a1; 你是否在寻找具身人工智能&#xff08;Embodied AI&#xff09;领域的研究资源&#xff1f;是否希望有一个系统性的资源集合来加速你的研究&#xff1f;今天给大家推荐一个重磅项目&#xff01; &#x1f31f; 为什么需要这个项目&#xff1f; 具身人工智能是一…...

Java位运算符大全

1. Java 支持的位运算符 Java 提供了 7 种位运算符&#xff1a; 运算符名称描述示例&按位与&#xff08;AND&#xff09;两个位都为 1 时&#xff0c;结果才为 15 & 3 → 1|按位或&#xff08;OR&#xff09;两个位有一个为 1 时&#xff0c;结果就为 15 | 3 → 7^按…...

Using the NCCL Library: A Practical Guide

文章目录 Using the NCCL Library: A Practical GuidePrerequisitesBasic NCCL ConceptsPractical Demo CodeCompilation and ExecutionKey Steps ExplainedCommon Patterns1. Point-to-Point Communication2. Broadcast3. Using Streams Best Practices Using the NCCL Librar…...

UML 活动图详解之小轿车启动活动图分析

目录 一、UML 活动图概述 二、UML 活动图的构成元素详解 &#xff08;一&#xff09;活动 &#xff08;二&#xff09;动作状态 &#xff08;三&#xff09;活动状态 &#xff08;四&#xff09;迁移&#xff08;转换&#xff09; &#xff08;五&#xff09;初始节点 …...

58常用控件_QTextEdit的使用

目录 代码示例: 获取多行输入框的内容 代码示例&#xff1a;验证输入框的各种信号 QTextEdit 表示多行输入框也是一个富文本 & markdown 编辑器 并且能在内容超出编辑框范围时自动提供滚动条 QTextEdit不仅能表示纯文本&#xff0c;还可以表示html和markdown QPlainTextE…...

uniapp-商城-42-shop 后台管理 分包

在uniapp 的全局文件中&#xff0c;讲了分包 pages.json 页面路由 | uni-app官网 主要是用于小程序的打包。超高两M就不能上传的。 看看官网上是怎么说的。 1 subPackages 分包加载配置&#xff0c;此配置为小程序的分包加载机制。 因小程序有体积和资源加载限制&#xf…...

Zookeeper断开连接时分布式锁释放问题的解决方案

Zookeeper断开连接时分布式锁释放问题的解决方案 当Zookeeper客户端与服务器断开连接时&#xff0c;可能会导致分布式锁无法正常释放&#xff0c;这是分布式锁实现中需要重点解决的问题。以下是几种解决方案&#xff1a; 1. 利用Zookeeper临时节点的特性 核心原理&#xff1…...

Nginx配置文件介绍

Nginx 的配置文件是模块化的&#xff0c;不同的配置文件承担着不同的功能&#xff0c;下面为你详细介绍常见的配置文件及其作用&#xff1a; 这些文件在/etc/nginx/目录下&#xff1a; 1、主配置文件 /etc/nginx/nginx.conf 是 Nginx 的核心配置文件&#xff0c;对全局参数进…...

新闻数据接口开发指南:从多源聚合到NLP摘要生成

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;新闻行业也迎来了新的变革。AI不仅能够自动化生成新闻内容&#xff0c;还能通过智能推荐系统为用户提供个性化的新闻体验。万维易源提供的“新闻查询”API接口&#xff0c;结合了最新的AI技术&#xff0c;为开…...

【八股消消乐】发送请求有遇到服务不可用吗?如何解决?

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、机器学习、深度学习、力扣算法等相关知识点&#xff0c;期待与你…...

【博通芯片方案】调试指令详解版一(无线)

前言 无线路由器的主流芯片方案包括,博通(BCM)、联发科(MTK)和高通等等。掌握常用的调试指令,有助于产品的测试以及故障排查。本系列文章将介绍博通芯片方案调试指令,欢迎有需要的朋友关注和分享。 无线 wl指令 查无线国家码 指令:wl -i wl1 country 说明:本系列文章…...

【Google Colab】利用unsloth针对医疗数据集进行大语言模型的快速微调(含跑通原代码)

【本文概述】 为了快速跑通&#xff0c;首先忽略算力等问题&#xff0c;使用google colab云端服务器&#xff0c;选择unsloth/DeepSeek-R1-Distill-Llama-8B大语言模型进行微调&#xff0c;微调参数只进行了简单的设置。 在微调的时候&#xff0c;实际说明colab对8B的模型微调…...

基于STM32、HAL库的ADS1255IDBR模数转换器ADC驱动程序设计

一、简介: ADS1255IDBR是德州仪器(TI)生产的一款高精度、低噪声、24位ΔΣ模数转换器(ADC),主要特性包括: 24位无丢失码分辨率 高达23位有效分辨率(ENOB) 数据速率可达30kSPS 低噪声: 2.5μV RMS (20SPS时) 可编程增益放大器(PGA): 1-64V/V 单/差分输入配置 内置自校准和系…...