初识javaweb2 tomcat
如果是tomcat启动成功却无法通过localhost:8080进入页面,先去查看是否是端口号被占用,
再用命令中断占用的进程,如果简单的命令窗口无法中断,切换到管理员身份运行即可
netstat -ano|findstr "8080" 查看那个进程占用了8080端口号 得到该进程pid后 taskkill /f /t /im “进程PID” 终结该占用的进程 如果失败,用管理员身份打开cmd去执行
在idea中创建动态的web工程后(该module有蓝点)
servlet
1、Servlet 是JavaEE 规范之一。规范就是接口
2、Servlet 就JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
3、Servlet 是运行在服务器上的一个java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。a
手动实现servlet程序
1、编写一个类去实现Servlet 接口
public class HelloServlet implements Servlet
2、实现service 方法,处理请求,并响应数据
3、到web.xml 中去配置servlet 程序的访问地址在web.xml中:添加这些内容(<servlet>标签开始
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- Servlet标签给tomcat配置servlet程序--><servlet><!-- servlet-name标签给servlet程序起一个别名(一般是类名)--><servlet-name>HelloServlet</servlet-name><!-- servlet-class是servlet程序的全类名--><servlet-class>summer.tryingweb.HelloServlet</servlet-class></servlet><!--servlet-mapping标签给servlet程序配置访问地址--><servlet-mapping><!-- servlet-name标签的作用是告诉服务器,我当前配置的地址给哪个servlet程序使用--><servlet-name>HelloServlet</servlet-name><!-- url-pattern标签配置访问地址/ 斜杠在服务器解析的时候,表示地址为: http://ip:port/工程路径/hello -> http://ip:port/hello--><url-pattern>/hello</url-pattern></servlet-mapping> </web-app>
a
servlet的生命周期
1、执行Servlet 构造器方法
2、执行init 初始化方法
第一、二步,是在第一次访问,的时候创建Servlet 程序会调用。
可以看到后面再重复执行,只打印了3
3、执行service 方法
第三步,每次访问都会调用。(每次执行都会调用
4、执行destroy 销毁方法
第四步,在web 工程停止的时候调用。
get和post请求的分发处理
/*service方法是专门用来处理请求和响应的*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("3、servlet方法");//类型转换(因为它有getMethod()方法HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;//获取请求方式String method = httpServletRequest.getMethod();//method(GET或POST)if("GET".equals(method)){doGet();}else if("POST".equals(method)){doPost();}}private void doPost() {System.out.println("post请求");}public void doGet() {System.out.println("get请求");}
HttpServletRequest是ServletRequest的一个子类,而其有getMethod方法。
通过继承HttpServlet实现Servlet程序
一般在实际项目开发中,都是使用继承HttpServlet 类的方式去实现Servlet 程序。
1、编写一个类去继承HttpServlet 类
2、根据业务需要重写doGet 或doPost 方法
3、到web.xml 中的配置Servlet 程序的访问地址使用idea创建Servlet 程序
如果没有上述创建选项(上面版本可能更老点),则按下面步骤实现
File-Project Struture - facet- Source Roots 将那个框勾上,后面就可以new 创建了
创建
之后可以发现在配置文件中会自动生成如下内容 (该内容在原本我们配置的文件中生成,我并没有新创建文件)
可以看到有红线标注,因为我们要自己配置访问地址
同样可以发现在设置路径下会帮我们创建好类并提供方法
Servlet类的继承方式
ServletConfig 类
ServletConfig 类从类名上来看,就知道是Servlet 程序的配置信息类。
Servlet 程序和ServletConfig 对象都是由Tomcat 负责创建,我们负责使用。
Servlet 程序默认是第一次访问的时候创建,ServletConfig 是每个Servlet 程序创建时,就创建一个对应的ServletConfig 对象。ServletConfig 类的三大作用
1、可以获取Servlet 程序的别名servlet-name 的值
2、获取初始化参数init-param(需要在web.xml下配置初始化的参数信息,如下<init-param>部分,可配置多个
3、获取ServletContext 对象
在别的地方也可使用ServletConfig
(补充:注意如果重写init中带参数的方法,则一定要调用父类的init方法
否则会出现
因为我们没有初始化使用的ServletConfig的对象
当我们在init方法中调用父类的方法,则不会。
因为在父类(HttpServlet接口继承GenericServlet接口,在GenericServlet接口中有如下方法
当我们调用getServletConfig方法去创建一个ServletConfig对象时,我们可以知道其操作是通过返回成员对象config
如图所示的config,当我们重写init(带参数)方法 时,则不会调用父类(算是父类的父类吧)时,不会去保存创建了的ServletConfig对象,
因此在给图中赋值时,并没有成功创建并赋值,造成后面引用出错。
ServletContext类
1、ServletContext 是一个接口,它表示Servlet 上下文对象
2、一个web 工程,只有一个ServletContext 对象实例。
3、ServletContext 对象是一个域对象。
4、ServletContext 是在web 工程部署启动的时候创建。在web 工程停止的时候销毁。(所以如果是重启服务器,原先的域值则销毁,如果不是则可以取到域对象的值
什么是域对象?
域对象,是可以像Map 一样存取数据的对象,叫域对象。
这里的域指的是存取数据的操作范围,整个web 工程。存数据 取数据 删除数据 Map put() get() remove() 域对象 setAttribute() getAttribute() removeAttribute();
ServletContext 类的四个作用
1、获取web.xml 中配置的上下文参数context-param在web.xml中要配置内容,例如
<!-- context-param是上下文参数(它属于整个web工程)--><context-param><param-name>today</param-name><param-value>saturday</param-value></context-param><context-param><param-name>mood</param-name><param-value>"I'm not happy"</param-value></context-param>
2、获取当前的工程路径,格式: /工程路径
3、获取工程部署后在服务器硬盘上的绝对路径
4、像Map 一样存取数据public class ContextServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1、获取web.xml 中配置的上下文参数context-paramServletContext servletContext = getServletConfig().getServletContext();//ServletContext servletContext1 = getServletContext();也可获取到ServletContext对象String today = servletContext.getInitParameter("today");System.out.println(today);System.out.println(servletContext.getInitParameter("mood"));//2、获取当前的工程路径,格式: /工程路径String contextPath = servletContext.getContextPath();System.out.println(contextPath);//3、获取工程部署后在服务器硬盘上的绝对路径String realPath = servletContext.getRealPath("/");System.out.println(realPath);//4、像Map 一样存取数据servletContext.setAttribute("weather","sunny");}
HTTP协议
a)什么是HTTP 协议
什么是协议?
协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。
所谓HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫HTTP 协议。HTTP 协议中的数据又叫报文。
b)请求的HTTP 协议格式
客户端给服务器发送数据叫请求。
服务器给客户端回传数据叫响应。
请求又分为GET 请求和POST 请求两种
i. GET 请求
1、请求行
(1) 请求的方式 GET
(2) 请求的资源路径[+?+请求参数]
(3) 请求的协议的版本号 HTTP/1.1
2、请求头
key : value 组成不同的键值对,表示不同的含义。
ii. POST 请求
1、请求行
(1) 请求的方式 POST
(2) 请求的资源路径[+?+请求参数]
(3) 请求的协议的版本号 HTTP/1.1
2、请求头
1) key : value 不同的请求头,有不同的含义
空行
3、请求体===>>> 就是发送给服务器的数据
iii. 常用请求头的说明
Accept: 表示客户端可以接收的数据类型
Accpet-Languege: 表示客户端可以接收的语言类型
User-Agent: 表示客户端浏览器的信息
Host: 表示请求时的服务器ip 和端口号f12并点击文件可以到如下界面查看请求信息
iv. 哪些是GET 请求,哪些是POST 请求
GET 请求有哪些:
1、form 标签method=get
2、a 标签
3、link 标签引入css
4、Script 标签引入js 文件
5、img 标签引入图片
6、iframe 引入html 页面
7、在浏览器地址栏中输入地址后敲回车
POST 请求有哪些:
8、form 标签method=post
c)响应的HTTP 协议格式
1、响应行
(1) 响应的协议和版本号
(2) 响应状态码
(3) 响应状态描述符
2、响应头
(1) key : value 不同的响应头,有其不同含义
空行
3、响应体---->>> 就是回传给客户端的数据
d)常用的响应码说明
200 表示请求成功
302 表示请求重定向
404 表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误)
500 表示服务器已经收到请求,但是服务器内部错误(代码错误)
e)MIME 类型说明
MIME 是HTTP 协议中数据类型。
MIME 的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务。MIME 类型的格式是“大类型/小类型”,并与某一种文件的扩展名相对应。常见的MIME 类型:
1.HttpServletRequest 类
a)HttpServletRequest 类有什么作用。
每次只要有请求进入Tomcat 服务器,Tomcat 服务器就会把请求过来的HTTP 协议信息解析好封装到Request 对象中。
然后传递到service 方法(doGet 和doPost)中给我们使用。我们可以通过HttpServletRequest 对象,获取到所有请求的信息。
(如图在上述方法中的HttpServletRequest类的使用)
b)HttpServletRequest 类的常用方法
i. getRequestURI() 获取请求的资源路径 ii. getRequestURL() 获取请求的统一资源定位符(绝对路径) iii. getRemoteHost() 获取客户端的ip 地址 iv. getHeader() 获取请求头 v. getParameter() 获取请求的参数 vi. getParameterValues() 获取请求的参数(多个值的时候使用) vii. getMethod() 获取请求的方式GET 或POST viii. setAttribute(key, value); 设置域数据 ix. getAttribute(key); 获取域数据 x. getRequestDispatcher() 获取请求转发对象
可以看到相关方法的使用,其中getRemoteHost()得到0:0:0:0:0:0:0:1,其实ipv6的格式,代表127.0.0.1。
若将localhost:8080改为ip:8080去访问则会得到127.0.0.1这种形式形式
解决请求的中文乱码问题
在post请求时
出现中文乱码(get好像没这个烦恼
解决:(记得要将字符集的设置放在获取请求参数的调用之前
遇到这种表单提交后报错Servlet不可用情况
(网上发现有挺多原因的,我这里的问题是action属性的路径写错了,我应该写映射里的取名,而不是类名
请求转发(服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。
public class Servlet1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求的参数(办事的材料)查看String username = request.getParameter("username");System.out.println("查看servlet1中的参数(材料),"+username);//给材料 盖一个章,并传递到servlet2去查看request.setAttribute("today","柜台1的章");//问路:servlet2怎么走//请求转法必须要以斜杠打头,/ 斜杠表示地址为: http://ip:port/工程名/ 映射到IDEA代码的web目录RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");//走向servlet2requestDispatcher.forward(request,response);}
public class Servlet2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求的参数(办事的材料)查看String username = request.getParameter("username");System.out.println("在servlet2中查看参数(材料),"+username);//查看servlet1是否盖章Object today = request.getAttribute("today");System.out.println("在servlet1中是否有章"+today);//处理自己的业务System.out.println("servlet2自己的业务");}
a
base标签
我们先创建如下a、b、c和index.html
在index.html中
在c.html中
可以发现我们通过点击可以实现index.html和c.html的来回跳转
下面用请求转发的形式实现
index.html中 <body>这是web下的index.html<br/><a href="a/b/c.html">a/b/c.html</a><br/><a href="http://localhost:8080/tryingweb/forward">请求转发:a/b/c.html</a><br/> </body>创建的Forward类中 public class Forward extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("经过了Forward程序");req.getRequestDispatcher("a/b/c.html").forward(req,resp);} }
点击下面的链接后得到如下界面
再点击得到
我们要知道在c.html中,我们的跳转链接是../../index.html,所以当我们用请求转发去实现时,先会转到http://localhost:8080/tryingweb/forward这个地址,然后再用../../index.html转换地址时则回不到我们想要的http://localhost:8080/tryingweb/index.html界面(即首页)
上图的意思即
在c.html页面时地址为:http://localhost:8080/tryingweb/a/b/c.html
点击c页面的回到首页则按照../../index.html去跳转地址,第一个../ 表示当前目录的父目录(即当前为c.html,当前目录为b,该父目录为a)。第二个../为当前目录(a)的父目录(即a的父目录tryingweb。(即../../表示到http://localhost:8080/tryingweb/)所以可以跳转到http://localhost:8080/tryingweb/index.html
而当我们用请求转发来实现时,
是由http://localhost:8080/tryingweb/forward地址来转换。
../../index.html-----》../ (localhost:8080)../index,html(还有一层目录直接去掉,因为到端口了没有目录可以去)--->得到http://localhost:8080/index.html,而这不是index.html正确访问的地址。
可用base标签避免这种参照地址发生变化的情况
如图在c.html下的head标签中使用base标签,写上参照地址
该地址也可以是
http://localhost:8080/tryingweb/a/b/(/不可以省略)该原理是相当于将base标签中的参照地址http://localhost:8080/tryingweb/a/b/c.html直接用../../index.html替换过去。
Web中的相对路径和绝对路径
在 javaWeb 中,路径分为相对路径和绝对路径两种: 相对路径是: . 表示当前目录 .. 表示上一级目录 资源名 表示当前目录/资源名 绝对路径: http://ip:port/工程路径/资源路径 在实际开发中,路径都使用绝对路径,而不简单的使用相对路径。 1、绝对路径 2、base+相对
Web中 / 斜杠的不同意义
在 web 中 / 斜杠 是一种绝对路径。 / 斜杠 如果被浏览器解析,得到的地址是:http://ip:port/ <a href="/">斜杠</a>/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径 1、<url-pattern>/servlet1</url-pattern> 2、servletContext.getRealPath(“/”); 3、request.getRequestDispatcher(“/”); 特殊情况: response.sendRediect(“/”);(请求重定向) 把斜杠发送给浏览器解析。得到 http://ip:port
2.HttpServletResponse 类
a)HttpServletResponse 类的作用 HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会创建一个 Response 对象传 递给 Servlet 程序去使用。HttpServletRequest 表示请求过来的信息,HttpServletResponse 表示所有响应的信息, 我们如果需要设置返回给客户端的信息,都可以通过 HttpServletResponse 对象来进行设置
b)两个输出流的说明
字节流 getOutputStream(); 常用于下载(传递二进制数据) 字符流 getWriter(); 常用于回传字符串(常用)
c)如何往客户端回传数据 要求 : 往客户端回传 字符串 数
public class ResponseIOServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {PrintWriter writer = resp.getWriter();writer.println("今天睡了很多觉");} }
执行上面代码得到如下乱码
查看发现现使用字符集为ISO-8859-1(其字符集不支持中文等)
把字符集设置成UTF-8
可以发现显示结果仍为乱码(应该是浏览器识别不出该字符集
d)响应的乱码解决
解决响应中文乱码方案一(不推荐使用):
通过响应头设置
(注意是charset=UTF-8,不是charset-UTF-8
解决响应中文乱码方案二(推荐):
直接使用setContentType方法
e)请求重定向
请求重定向,是指客户端给服务器发请求,然后服务器告诉客户端说。我给你一些地址。你去新地址访问。叫请求重定向(因为之前的地址可能已经被废弃)
请求重定向的第一种方案:
设置响应状态码 302,设置响应头,
public class Response2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("转到response啦!");} }
可发现Response1转到Response2输出其内容
请求重定向的第二种方案(推荐使用):
resp.sendRedirect()
可直接写入要转入的地址即可
相关文章:

初识javaweb2 tomcat
如果是tomcat启动成功却无法通过localhost:8080进入页面,先去查看是否是端口号被占用, 再用命令中断占用的进程,如果简单的命令窗口无法中断,切换到管理员身份运行即可 netstat -ano|findstr "8080" 查看那个进程占用了…...
使用OPENROWSET :在一个数据库中查询另一个数据库的数据
当你需要在一个数据库中查询另一个数据库的数据时,SQL Server提供了多种方法来实现这一目标。一种常见的方法是使用链接服务器(Linked Server),另一种方法是使用 OPENROWSET 函数。本篇博客将重点介绍如何使用 OPENROWSET 函数在当…...
基于STM32设计的智慧农业管理系统(ESP8266+腾讯云微信小程序)
一、项目介绍 基于STM32设计的智慧农业控制系统(ESP8266+腾讯云微信小程序) 1.1 项目背景 随着人们对食品安全和生态环境的日益重视,智慧农业逐渐成为一个备受关注的领域。智能化管理可以提高农业生产效率,减少资源浪费,改善生态环境。因此,基于物联网技术的智慧农业管理系…...

Flutter视图原理之三棵树的建立过程
目录 三棵树的关系树的构建过程1.updateChild函数(element的复用)2.inflateWidget函数3.mount函数3.1 componentElement的实现3.2 RenderObjectElement的实现3.2.1 attachRenderObject函数 4.performRebuild函数 总结三棵树创建流程 三棵树的关系 Flutt…...
详细解析冒泡排序,JS如何基本实现的。
目录 冒泡排序是什么: 使用冒泡排序是为了什么: DEMO示例: 冒泡排序是什么: 冒泡排序(Bubble Sort)是一种简单的比较排序算法,它通过多次遍历待排序的元素,比较相邻元素的大小,如果它们的顺序不正确就交换它们&…...
如何消除CSDN博文代码中自动添加的行号
哪里有自定义目录标题 编写CSDN博文,使用代码块的linux命令行,预览时没有代码行号,但发布文章后自动添加了行号。 git clone https://github.com/mikel-brostrom/yolo_tracking.git cd yolo_tracking pip install -v -e .为什么预览和发布的…...

定制效果在线定制印刷系统源码 DIY在线定制系统源码 云印刷定制系统源码手机、PC端实时互通
支持各类产品的在线定制,无论是水杯雨伞U盘还是T恤衬衫四件套,均可轻松进行定制 独创制作间概念,同一套模板可以重复对应不同制作间 手机、PC端实时互通,客户可通过任意途径进行图片上传、编辑,一方修改另一方即时可见…...
算法|每日一题|同积元组|哈希统计
1726.同积元组 原题地址: 力扣每日一题:同积元组 给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a ! b ! c ! d 。 class Solution …...

最新AI创作系统ChatGPT网站H5源码V2.6.4+搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持Prompt预设应用
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…...

最新!两步 永久禁止谷歌浏览器 Google Chrome 自动更新
先放效果图: CSDN这个问题最火的大哥的用了没用 像他这样连浏览器都打不开 为什么要禁止chrome自动更新 看到很多搞笑的大哥,说为啥要禁止; 我觉得最大的原因就是chromedriver跟不上chrome的自动更新,导致我们做selenium爬虫的…...
在Java中线程和进程的区别
在Java中,线程和进程的区别与一般的操作系统环境下类似,但在Java语言层面上也有一些特点。下面是在Java中线程和进程的区别: 定义:在Java中,进程是指一个正在运行的应用程序实例,而线程是进程中的执行单元。…...

【高危安全通告】Oracle 10月月度安全漏洞预警
近日,安全狗应急响应中心关注到Oracle官方发布安全公告,共披露出在Oracle Weblogic中存在的6个高危漏洞。 漏洞描述 CVE-2023-22069:Oracle Weblogic 远程代码执行漏洞 Oracle WebLogic Server存在远程代码执行漏洞,该漏洞的CVS…...

卷王问卷考试系统SurveyKing,开源调查问卷和考试系统源码
卷王问卷考试系统/SurveyKing是一个功能最强大的开源调查问卷和考试系统,可以快速部署,并适用于各行业。该系统提供了在线表单设计、数据收集、统计和分析等功能,支持20多种题型,多种创建问卷方式和多种问卷设置。 无论您是需要进…...

uniapp开发微信小程序,webview内嵌h5,h5打开pdf地址,解决方案
根据公司要求,让我写一个h5,后续会嵌入到合作公司的微信小程序的webview中,如果是自己公司微信小程序,可以采取先下载下来pdf,然后通过wx.openDocument,进行单纯的预览操作,这个可以根据这个老哥…...

Swift使用Embassy库进行数据采集:热点新闻自动生成器
概述 爬虫程序是一种可以自动从网页上抓取数据的软件。爬虫程序可以用于各种目的,例如搜索引擎、数据分析、内容聚合等。本文将介绍如何使用Swift语言和Embassy库编写一个简单的爬虫程序,该程序可以从新闻网站上采集热点信息,并生成一个简单…...

【AIGC核心技术剖析】改进视频修复的传播和变压器(动态滤除环境中的物体)
基于流的传播和时空变压器是视频修复(VI)中的两种主流机制。尽管这些组件有效,但它们仍然受到一些影响其性能的限制。以前基于传播的方法在图像域或特征域中单独执行。与学习隔离的全局图像传播可能会由于光流不准确而导致空间错位。此外&…...

Win系统VMware虚拟机安装配置(二)
系统的安装得分两个步骤,第一步得配置一台电脑,选配 cpu,内存,磁盘,网卡等硬 件。第二步才是安装系统。 一、配置电脑 1、 进入 VMware 双击 VMware 图标,看到如下界面。 2、 自定义新的虚拟机 3、…...
基于枚举实现的观察者模式
文章目录 前言一、观察者1.定义一个观察者接口2.察者接口具体实现类 二、主题1.定义一个主题接口2.主题接口具体实现类 三、枚举维护观察者1.定义枚举类维护观察者 四、观察者模式测试1.定义观察者模式测试接口2.观察者模式测试运行结果 前言 本文介绍使用枚举的方式实现的观察…...
基于神经网络的图像识别研究
基于神经网络的图像识别是计算机视觉领域的一个热门研究方向,尤其是深度学习技术的兴起。以下是一些与基于神经网络的图像识别相关的关键主题和研究方向: 1. 卷积神经网络(CNN): CNN是图像识别领域最重要的神经网络之…...

基于SSM的工资管理系统
基于SSM的工资管理系统 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 管理员界面 通知公告 考勤管理 工资管理 请假管理 摘要 基于SSM(Spring、S…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...