Tomcat 使用和配置文件(详解)

一.tomcat 介绍

1. tomcat 概述

自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持 Servlet,这样Tomcat就诞生了。Tomcat 是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的 servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的 喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。Tomcat与Apache的组合相当完美。

2.tomcat 历史

        Tomcat 最初由Sun公司的软件架构师 James Duncan Davidson 开发,名称为“JavaWebServer”。
        1999年,在 Davidson 的帮助下,该项目于1999年于apache软件基金会旗下的JServ项目合并,并发布第一个版本(3.x),即是现在的Tomcat,该版本实现了Servlet2.2和JSP 1.1规范 。
        2001年,Tomcat 发布了4.0版本, 作为里程碑式的版本,Tomcat 完全重新设计了其架构,并实现了Servlet 2.3和JSP 1.2规范。
        目前 Tomcat 已经更新到 10.0.x版本,但是目前企业中的Tomcat服务器,主流版本还是7.x 和 8.x,所以本课程是基于 8.5 版本进行讲解。

 二.tomcat 实例安装

2.1. 环境准备

  • 虚拟机的版本:VMware-workstation-full-15.5.6-16341506.exe
  • 系统镜像版本:CentOS-6.10-x86_64-bin-DVD1.iso,全新安装,桌面版,可上网
  • 系统内存大小:1GB
  • 系统硬盘大小:20GB
  • 连接工具版本:SecureCRTSecureFX_HH_x64_7.0.0.326.zip

2.2. tomcat下载

mv apache-tomcat-8.5.57 /usr/local/tomcat
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz

2.3. tomcat解压

tar -zxvf apache-tomcat-8.5.57.tar.gz

2.4. tomcat 安装

mv apache-tomcat-8.5.57 /usr/local/tomcat

2.5. tomcat 启动

 注意:Tomcat启动需要Java环境,我这里是已经安装好的,Java环境安装不再本章之中!

 启动 tomcat :

/usr/local/tomcat/bin/startup.sh

关闭防火墙:

service iptables stop
chkconfig iptables off

在浏览器输入:http://192.168.239.144:8080/

 

2.6. tomcat关闭 

/usr/local/tomcat/bin/shutdown.sh

 三.Tomcat 配置文件详解

3.1. server.xml 详解 

server.xml 是tomcat 服务器的核心配置文件,包含了Tomcat的 Servlet 容器(Catalina)的所有配置。

3.1.1. Server

Server是server.xml的根元素,用于创建一个Server实例,默认使用的实现类是org.apache.catalina.core.StandardServer。

<Server port="8005" shutdown="SHUTDOWN">
...
</Server>

标签属性和子元素:

  • port:Tomcat 监听的关闭服务器的端口。
  • shutdown:关闭服务器的指令字符串。
  • Server内嵌的子元素为 Listener、GlobalNamingResources、Service。

3.1.2. Listener

默认配置的5个Listener的含义:

<!‐‐ 用于以日志形式输出服务器 、操作系统、JVM的版本信息 ‐‐>
<Listener className="org.apache.catalina.startup.VersionLoggerListener" /><!‐‐ 用于加载(服务器启动) 和 销毁 (服务器停止) APR。 如果找不到APR库, 则会输出日志, 并不影响Tomcat启动 ‐‐>
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><!‐‐ 用于避免JRE内存泄漏问题 ‐‐>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /><!‐‐ 用户加载(服务器启动) 和 销毁(服务器停止) 全局命名服务 ‐‐>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /><!‐‐ 用于在Context停止时重建Executor 池中的线程, 以避免ThreadLocal 相关的内存泄漏 ‐‐>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

3.1.3、GlobalNamingResources

GlobalNamingResources中定义了全局命名服务:

<GlobalNamingResources><!‐‐ 可编辑的用户数据库,UserDatabaseRealm也可以使用该数据库对用户进行身份验证 ‐‐><Resource 	name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat‐users.xml" />
</GlobalNamingResources>

3.1.4、Service

该元素用于创建 Service 实例,默认使用 org.apache.catalina.core.StandardService。默认情况下,Tomcat 仅指定了Service 的名称, 值为 “Catalina”。Service 可以内嵌的元素为 : Listener、Executor、Connector、Engine,其中 : Listener 用于为Service添加生命周期监听器, Executor 用于配置Service 共享线程池,Connector 用于配置Service 包含的链接器, Engine 用于配置Service中链接器对应的Servlet 容器引擎。一个Server服务器,可以包含多个Service服务。

<Service name="Catalina"> 
... 
</Service>

3.1.5、Executor

默认情况下,Service 并未添加共享线程池配置。 如果我们想添加一个线程池, 可以在 下添加如下配置:

<Executor   name="tomcatThreadPool" namePrefix="catalina‐exec‐" maxThreads="200" minSpareThreads="100" maxIdleTime="60000" maxQueueSize="Integer.MAX_VALUE" prestartminSpareThreads="false" threadPriority="5"className="org.apache.catalina.core.StandardThreadExecutor" />

标签属性和子元素:

  • name:线程池名称,用于Connector中指定。
  • namePrefix:所创建的每个线程的名称前缀,一个单独的线程名称为 namePrefix+threadNumber。
  • maxThreads:池中最大线程数。
  • minSpareThreads:活跃线程数,也就是核心池线程数,这些线程不会被销毁,会一直存在。
  • maxIdleTime:线程空闲时间,超过该时间后,空闲线程会被销毁,默认值为6000(1分钟),单位毫秒。
  • maxQueueSize:在被执行前最大线程排队数目,默认为Int的最大值,也就是广义的无限。除非特殊情况,这个值不需要更改, 否则会有请求不会被处理的情况发生。
  • prestartminSpareThreads:启动线程池时是否启动 minSpareThreads部分线程。 默认值为false,即不启动。
  • threadPriority:线程池中线程优先级,默认值为5,值从1到10。
  • className:线程池实现类,未指定情况下,默认实现类为 org.apache.catalina.core.StandardThreadExecutor。 如果想使用自定义线程池首先需要实现 org.apache.catalina.Executor接口。

3.1.6、Connector

Connector 用于创建链接器实例。默认情况下,server.xml 配置了两个链接器,一个支持HTTP协议,一个支持AJP协议。因此大多数情况下,我们并不需要新增链接器配置, 只是根据需要对已有链接器进行优化。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

标签属性和子元素:

  • port:端口号,Connector 用于创建服务端Socket 并进行监听, 以等待客户端请求链接。如果该属性设置为0,Tomcat将会随机选择一个可用的端口号给当前Connector使用。

  • protocol:当前Connector 支持的访问协议。 默认为 HTTP/1.1,并采用自动切换机制选择一个基于 JAVA NIO 的链接器或者基于本地APR的链接器(根据本地是否含有Tomcat的本地库判定)。如果不希望采用上述自动切换的机制, 而是明确指定协议, 可以使用以下值。

  • Http协议:
org.apache.coyote.http11.Http11NioProtocol  ,非阻塞式 Java NIO 链接器
org.apache.coyote.http11.Http11Nio2Protocol ,非阻塞式 JAVA NIO2 链接器
org.apache.coyote.http11.Http11AprProtocol  ,APR 链接器
  • AJP协议:
org.apache.coyote.ajp.AjpNioProtocol  ,非阻塞式 Java NIO 链接器
org.apache.coyote.ajp.AjpNio2Protocol ,非阻塞式 JAVA NIO2 链接器
org.apache.coyote.ajp.AjpAprProtocol  ,APR 链接器
  • connectionTimeout:Connector接收连接后的等待超时时间, 单位为毫秒。 -1 表示不超时。

  • redirectPort:当前Connector 不支持SSL请求, 接收到了一个请求, 并且也符合 security-constraint 约束, 需要SSL传输,Catalina自动将请求重定向到指定的端口。

  • executor:指定共享线程池的名称, 也可以通过maxThreads、minSpareThreads 等属性配置内部线程池。

  • URIEncoding:用于指定编码URI的字符编码, Tomcat8.x版本默认的编码为UTF-8 , Tomcat7.x版本默认为ISO-8859-1。

  • maxThreads:池中最大线程数。

  • minSpareThreads:活跃线程数,也就是核心池线程数,这些线程不会被销毁,会一直存在。

  • acceptCount:接收的连接数。

  • maxConnections:接收的最大连接数。

  • compression:是否压缩。

  • compressionMinSize:压缩的大小。

  • disableUploadTimeout:禁用上传超时。

完整的配置如下:

<Connector  port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" executor="tomcatThreadPool" URIEncoding="UTF‐8"maxThreads="1000" minSpareThreads="100" acceptCount="1000" maxConnections="1000" compression="on" compressionMinSize="2048"disableUploadTimeout="true" />

3.1.7、Engine

Engine 作为Servlet 引擎的顶级元素,内部可以嵌入: Cluster、Listener、Realm、 Valve和Host。

<Engine name="Catalina" defaultHost="localhost">
...
</Engine>

标签属性和子元素:

  • session-timeout: 会话超时时间,单位:分钟。
  • cookie-config:用于配置会话追踪Cookie。

    • name:Cookie的名称。
      domain:Cookie的域名。
      path:Cookie的路径。
      comment:Cookie的注释。
      http-only:Cookie只能通过HTTP方式进行访问,JS无法读取或修改,此项可以增 加网站访问的安全性。
      secure:此Cookie只能通过HTTPS连接传递到服务器,而HTTP连接则不会传递该信息。注意是从浏览器传递到服务器,服务器端的Cookie对象不受此项影响。
      max-age:以秒为单位表示cookie的生存期,默认为‐1表示是会话Cookie,浏览器 关闭时就会消失。

  • tracking-mode:用于配置会话追踪模式,Servlet3.0版本中支持的追踪模式: COOKIE、URL、SSL。

3.3.3、Servlet配置

Servlet 的配置主要是两部分, servlet 和 servlet-mapping :

<servlet><servlet-name>myServlet</servlet‐name><servlet-class>com.caochenlei.MyServlet</servlet‐class><init-param><param-name>fileName</param‐name><param-value>init.conf</param‐value></init‐param><load-on-startup>1</load‐on‐startup><enabled>true</enabled>
</servlet>
<servlet-mapping><servlet-name>myServlet</servlet‐name><url-pattern>*.do</url‐pattern><url-pattern>/myservet/*</url‐pattern>
</servlet‐mapping>

标签属性和子元素:

servlet:

  • servlet-name:指定servlet的名称, 该属性在web.xml中唯一。
  • servlet-class:用于指定servlet类名。
  • init-param:用于指定servlet的初始化参数, 在应用中可以通过 HttpServlet.getInitParameter 获取。
  • param-name:初始化参数名称。
  • param-value:初始化参数的值。
  • load-on-startup:用于控制在Web应用启动时,Servlet的加载顺序, 值小于0,web应用启动时,不加载该servlet,第一次访问时加载。
  • enabled:若为false,表示Servlet不处理任何请求。

servlet-mapping:

  • servlet-name:你想要让哪个servlet处理,这里就写哪个servlet名称。
  • url-pattern:用于指定URL表达式,一个 servlet‐mapping可以同时配置多个 url‐ pattern。

servlet 中文件上传配置:

<servlet><servlet-name>uploadServlet</servlet‐name><servlet-class>com.caochenlei.UploadServlet</servlet‐class><multipart-config><location>C://path</location><max-file-size>10485760</max‐file‐size><max-request-size>10485760</max‐request‐size><file-size-threshold>0</file‐size‐threshold></multipart‐config>
</servlet>

标签属性和子元素:

  • multipart-config:上传的配置
  • location:存放生成的文件地址。
  • max-file-size:允许上传的文件最大值。 默认值为‐1, 表示没有限制。
  • max-request-size:针对该 multi/form‐data 请求的最大数量,默认值为‐1, 表示无限制。
  • file-size-threshold:当数量量大于该值时, 内容会被写入文件。

3.3.4、Listener配置

Listener用于监听servlet中的事件,例如context、request、session对象的创建、修改、删除,并触发响应事件。Listener是观察者模式的实现,在servlet中主要用于对context、request、session对象的生命周期进行监控。在servlet2.5规范中共定义了8中Listener。在启动时,ServletContextListener 的执行顺序与web.xml 中的配置顺序一致, 停止时执行顺序相反。

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener‐class>
</listener>

标签属性和子元素:

  • listener-class:用于指定监听的类,该类必须实现Listener接口。

3.3.5、Filter配置

filter 用于配置web应用过滤器, 用来过滤资源请求及响应。 经常用于认证、日志、加密、数据转换等操作, 配置如下:

<filter><filter-name>myFilter</filter‐name><filter-class>com.caochenlei.MyFilter</filter‐class><async-supported>true</async‐supported><init-param><param-name>language</param‐name><param-value>CN</param‐value></init‐param>
</filter>
<filter-mapping><filter-name>myFilter</filter‐name><url-pattern>/*</url‐pattern>
</filter‐mapping>

标签属性和子元素:

filter:

  • filter-name:用于指定过滤器名称,在web.xml中,过滤器名称必须唯一。
  • filter-class:过滤器的全限定类名,该类必须实现Filter接口。
  • async-supported:该过滤器是否支持异步。
  • init-param:用于配置Filter的初始化参数, 可以配置多个, 可以通过FilterConfig.getInitParameter获取。
  • param-name:初始化参数名称。
  • param-value:初始化参数的值。

filter-mapping:

  • filter-name:这里指的是你想使用哪个过滤器进行过滤就写哪个过滤器的名称。
  • url-pattern:指定该过滤器需要拦截的URL。

3.3.6、欢迎页面配置

welcome-file-list 用于指定web应用的欢迎文件列表。尝试请求的顺序,从上到下。

<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file>
</welcome-file-list>

3.3.7、错误页面配置

error-page 用于配置Web应用访问异常时定向到的页面,支持HTTP响应码和异常类两种形式。

<error-page><error-code>404</error‐code><location>/404.html</location>
</error‐page>
<error-page><error-code>500</error‐code><location>/500.html</location>
</error‐page>
<error-page><exception-type>java.lang.Exception</exception‐type><location>/error.jsp</location>
</error‐page>

 四.tomcat 目录

1. bin :存放各种平台下启动和关闭Tomcat的脚本文件。其中有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。 startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。

2. conf :存放不同的配置文件(server.xml和web.xml);tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat-users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.最重要的是 server.xml;配置tomcat组件的XML文件server.XML其中包括:

I.顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括和;

II.连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;

II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:

IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:

一个包含一个或多个,一个包含唯一一个和一个或多个,多个共享一个;一个包含多个,每个定义一个虚拟主机,包含一个或多个web应用; 元素是代表一个在虚拟主机上运行的Web应用。标签的描述

3. Doc:存放 Tomcat文档;

4. Common:存放Tomcat运行需要的库文件(JARS);

5. logs:存放Tomcat执行时的LOG文件(日志文件);

6. src: 存放Tomcat的源代码;(这个要看你下载的是何种tomcat啦)

7. webapps:Tomcat的主要Web发布目录(包括应用程序示例);

8. work:存放jsp编译后产生的class文件;

9. temp : 临时活页夹,Tomcat运行时候存放临时文件用的。

tomcat 类加载

Bootstrap($JAVA_HOME/jre/lib/ext/*.jar) 其实直接双击该jar也会使得tomcat运行起来。

System($CLASSPATH/*.class和指定的jar)

Common($CATALINA_HOME/common 下的classes,lib,endores三个子目录)

Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)

&Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME/lib目录)仅对Web应用程序可见,对Tomcat不可见WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes/*.class lib/*.jar)

加载类和资源的顺序为:

1、/Web-INF/classes

2、/Web-INF/lib/*.jar

3、Bootstrap

4、System

5、$CATALINA_HOME/common/classes

6、$CATALINA_HOME/common/endores/*.jar

7、$CATALINA_HOME/common/lib/*.jar

8、$CATALINA_HOME/shared/classes

9、$CATALINA_HOME/shared/lib/*.jar
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395618.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[自学记录09*]关于模糊效果降采样优化性能的小实验

一、降采样在模糊中的优化 这两天接手了几个高度定制化的模糊&#xff0c;包括不限于放射和旋转状的径向模糊&#xff0c;移轴模糊&#xff0c;景深的散景模糊等等&#xff0c;这些效果在游戏中非常常见。 其实模糊的原理都差不多&#xff0c;无非就是对UV偏移后重新采样再求…

《Python爬虫逆向实战》绕过debugger的方法汇总

禁用断点 打开控制台&#xff0c;点击右边的禁用断点按钮。 点击之后再刷新下&#xff0c;就会发现debugger失效了。 注&#xff1a;这种方法有个 弊端&#xff0c;就是我们在代码中下的断点也都将失效。 Add script to ignore list 在代码文件中任意位置右键&#xff0c;然…

51单片机—串口

一、 串口基本认知 串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方 式的扩展接口。串行接口&#xff08;Serial Interface&#xff09;是指数据一位一位地顺序传送。其特点是通信线路简 单&a…

【C++ 面试 - 基础题】每日 3 题(七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

【网络安全】玲珑安全第四期

鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …

性能测试工具LoadRunner

前言&#x1f440;~ 上一章我们介绍了性能测试的一些基本概念&#xff0c;重要的是性能测试的各项指标&#xff0c;今天我们使用性能测试工具LoadRunner简单的完成一次性能测试 性能测试Load Runner LoadRunner是什么&#xff1f; LoadRunner安装 LoadRunner脚本录制 1.录…

算法板子:质数——判定质数、分解质因数、筛质数

目录 一、判定质数 1. 代码 二、分解质因数 1. 质因数的概念 2. 代码 三、筛质数——获取1~n中所有质数的个数 1. 合数的概念 2. 代码 一、判定质数 1. 代码 #include <iostream> using namespace std;bool is_prime(int x) {// 1不是质数, 需要特判if (x 1) …

QT键盘和鼠标事件

这些事件都在QWidget 中的保护成员方法中 都是虚函数在头文件中声明了 需要类外重现实现 如果头文件中声明 类外无实现就会报错 void Widget::keyPressEvent(QKeyEvent *event) {switch (event->key()) {//获取按键case Qt::Key_W://按键wqDebug()<<"按下w"…

开源免费前端地图开发组件xdh-map

xdh-map是一个基于Openlayers的地图应用Vue组件&#xff0c;具有多方面的功能和特点。以下是对xdh-map的详细介绍&#xff1a; 一、功能与特性 内置多种地图瓦片&#xff1a;xdh-map内置了百度、高德、天地图等地图瓦片&#xff0c;使得开发者可以方便地在应用中集成多种地图…

【Material-UI】Checkbox 组件中的 Label Placement 设置详解

文章目录 一、Checkbox 组件简介1. 组件概述2. labelPlacement 属性 二、labelPlacement 属性的使用方法三、各标签位置的效果与应用场景1. Top&#xff08;顶部&#xff09;2. Start&#xff08;左侧&#xff09;3. Bottom&#xff08;底部&#xff09;4. End&#xff08;右侧…

大模型算力基础设施技术趋势、关键挑战与发展路径

文章目录 前言一、大模型技术发展趋势1.1 大语言模型1.2 多模态模型1.3 长序列模型1.4 混合专家模型二、大模型算力基础设施发展问题与挑战2.1 可用算力规模亟需算力利用效率提升2.2 集群性能提升依赖跨尺度、多层次互联三、大模型算力基础设施高质量发展路径总结前言 从大模型…

使用 `grep` 命令的常用方式

使用 grep 命令的常用方式 grep 是一个强大的命令行工具&#xff0c;用于在文件中搜索文本。无论是程序员、系统管理员还是普通用户&#xff0c;都可以通过 grep 快速定位需要的信息。本文将介绍 grep 命令的一些常用方式&#xff0c;并给出相应示例的执行结果。 示例文本 在…

C语言求平方和倒数

文章目录 1. 代码实现float类型数据double类型数据使用 double 类型的调整 2. 魔数与位级别操作浮点数表示位级别魔数操作 3. 牛顿迭代4. 复杂代码具体解释具体解释&#xff1a;目的&#xff1a;举例&#xff1a; 5.感谢 平方和倒数 广泛用于计算机图形学中&#xff0c;尤其是在…

Spring Boot - 通过ApplicationListener实现接口请求的性能监控

文章目录 概述1. ServletRequestHandledEvent事件2. 实现步骤3. 优缺点分析4. 测试与验证小结其他方案1. 自定义拦截器2. 性能监控平台3. 使用Spring Boot Actuator4. APM工具 概述 在Spring框架中&#xff0c;监控接口请求的性能可以通过ServletRequestHandledEvent事件实现。…

【数据结构】—— 内部排序算法详解

1、前言2、常见排序算法3、排序算法实现3.1 直接插入排序3.2 希尔排序3.3 选择排序3.4 堆排序3.5 冒泡排序3.6 快速排序3.6.1 单趟排序hoare法挖坑法双指针法 3.6.2 非递归实现3.6.3 常见问题基准值的选取小区间优化 3.7 归并排序3.7.1 递归实现3.7.2 非递归实现 3.8 计数排序 …

glibc的安装及MySQL的安全用户角色权限(twenty-one day)

一、glibc安装 mysql 清空/etc/目录下的my.cnf ls -l /etc/my.cnf rm -rf /etc/my.cnf yum -y remove mariadb find / -name "*mysql*" -exec rm -rf {} \; 安装mysql软件包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-li nux-glibc2.1…

面壁的智能开源 MiniCPM-V 2.6 边缘人工智能多模态功能与 GPT-4V 不相上下

"MiniCPM-V2.6 "是一个边缘多模态人工智能模型&#xff0c;仅拥有 80 亿个参数&#xff0c;却在单图像、多图像和视频理解任务中取得了低于 200 亿个参数的三项 SOTA&#xff08;艺术境界&#xff09;成绩&#xff0c;显著增强了边缘多模态能力&#xff0c;并与 GPT-…

爬虫入门--了解相关工具

目录 1.爬虫与python 2.第一个爬虫 3.web请求的全过程 3.1服务器渲染 3.2前端JS渲染 4.浏览器工具 4.1Elements 4.2Console 4.3Source 4.4network&#xff08;重点&#xff09; 5.小结 1.爬虫与python 首先我们要知道&#xff0c;爬虫一定要用Python么? 非也~…

云计算任务调度优化matlab仿真,对比蚁群优化和蛙跳优化

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 ACO蚁群优化 4.2 蛙跳优化 5.完整程序 1.程序功能描述 云计算任务调度优化,优化目标位任务消耗时间&#xff0c;调度后的经济效益以及设备功耗&#xff0c;对比蚁群优化算法和蛙跳优化…

三星、小米和 OPPO设备实验室将采用Android设备流技术

早在 5 月份的年度开发者大会上&#xff0c;Google就发布了 Android 设备流测试版。开发人员可以在Google数据中心的真实物理设备上更轻松、更互动地测试自己的应用程序&#xff0c;这些设备会直接串流到 Android Studio。今天&#xff0c;Google宣布与三星、小米和 OPPO 合作扩…