Linux中安装Tomcat

文章目录

  • 一、Tomcat介绍
    • 1.1、Tomcat是什么
    • 1.2、Tomcat的工作原理
    • 1.3、Tomcat适用的场景
    • 1.4、Tomcat与Nginx、Apache比较
      • 1.4.1、优势
      • 1.4.2、劣势
      • 1.4.3、定位功能
    • 1.5、Tomcat 的主要组件
    • 1.6、Tomcat 的主要配置文件
  • 二、Tomcat安装
    • 2.1、查看可用的JDK
    • 2.2、安装OpenJDK 11
    • 2.3、配置环境变量
    • 2.4、验证安装
    • 2.5、查看tomcat的可以用版本
    • 2.6、安装tomcat
    • 2.7、添加环境变量
    • 2.8、启动tomcat
    • 2.9、安装Tomcat管理包
    • 2.10、配置登录用户路径


一、Tomcat介绍

1.1、Tomcat是什么

Tomcat(全称Apache Tomcat)是一个开源的Web应用服务器,专门用于运行Java编写的网站和Web应用程序。它是由Apache Software Foundation开发和维护的,能够实现Java Servlet、JavaServer Pages (JSP) 等Java技术规范,是开发和部署Java Web应用的常用选择。

Tomcat之所以被广泛使用,主要是因为它兼具轻量级和功能强大的特点。作为Servlet容器,Tomcat负责管理Servlet的生命周期,从初始化到销毁,同时支持多线程处理多个并发请求,确保高效处理HTTP请求。另外,Tomcat还支持JSP技术,允许开发者在HTML页面中嵌入Java代码,动态生成网页内容。

Tomcat的历史可以追溯到1999年,当时由Sun Microsystems捐赠给Apache软件基金会,成为Jakarta项目的一部分,并逐步发展成为今天的独立项目。这一历史背景使得Tomcat不仅在技术上具有深厚的积累,同时也拥有强大的社区支持。对于开发者来说,无论是初学者还是专业开发人员,Tomcat都提供了一个稳定且易于上手的平台,便于构建和扩展各种类型的Web应用。

1.2、Tomcat的工作原理

Tomcat的工作原理主要涉及其核心组件:连接器(Connector)和容器(Container),以及它们如何协同工作来处理HTTP请求。

首先,连接器(Connector)是Tomcat中负责接收HTTP请求的第一个组件。它监听特定端口(如8080),当HTTP请求到达时,Connector接收并解析这些请求,然后转换成Tomcat的Request对象。这一过程涉及到网络I/O和字节流处理,确保原始HTTP请求被正确转换为Tomcat内部可处理的格式。

接下来,处理后的Request对象传递给容器(Container)。Tomcat的容器系统采用层次结构,包括Engine、Host、Context和Wrapper四个层级。Request对象首先传递到Engine,然后到Host,接着到Context,最后到Wrapper。每个层级可以包含多个子容器,形成一种父子关系。这种设计使得Tomcat能够高效管理多个应用和请求。

在Container内部,Request对象继续通过一系列管道(Pipeline)和阀(Valve)进行处理。这些组件负责执行各种通用功能,比如安全检查、会话管理以及请求过滤。这个处理过程为后续目标Servlet的准备提供了必要条件。

具体到Servlet的调用,当Request对象到达对应的Wrapper时,Wrapper确定由哪一个Servlet来处理该请求。一旦找到目标Servlet,就会调用它的service方法,该方法根据请求的HTTP方法(如GET或POST)来决定具体调用doGet或doPost等。Servlet然后生成响应,通过同样的管道回传给Connector,最终以HTTP响应的形式返回给客户端。

Tomcat的工作流程非常注重各组件之间的协同和数据传递。从网络请求的接收和转换,到请求在容器中的层层传递与处理,每一步都是为了确保不同Web应用和Servlet能够高效、安全地运行。理解这些流程对于优化和部署Java Web应用至关重要。

1.3、Tomcat适用的场景

  • Web应用服务器:Tomcat是一个功能强大的Web应用服务器,可以用于部署和运行各种Java Web应用程序。它支持Servlet、JSP、WebSocket等技术,并提供了丰富的扩展点和API,方便开发者进行定制和集成。
  • 轻量级应用服务器:相较于其他重量级的Java EE应用服务器(如WildFly、GlassFish),Tomcat更加轻量级,占用资源较少,启动速度快,适合在小型到中型项目中使用。
  • 开发和测试环境:由于Tomcat易于安装和配置,并且提供了丰富的文档和社区支持,它经常被用作开发和测试环境中的默认Web服务器。开发人员可以在本地机器上快速搭建和测试Web应用程序。
  • 微服务架构:随着微服务架构的流行,Tomcat也可以作为轻量级的容器来部署和管理单个微服务。它可以与Spring Boot等框架结合使用,提供快速的开发和部署体验。
  • 云原生应用:虽然Tomcat本身不是专为云原生应用设计的,但它可以通过Kubernetes等容器编排工具轻松地部署到云平台上。这使得Tomcat成为构建云原生应用的一个可行选择。

尽管Tomcat具有广泛的应用场景,但对于大型项目或需要更高级功能的企业级应用,可能需要选择更强大的应用服务器,如WildFly、WebLogic或WebSphere等。这些服务器提供了更多的特性和性能优化,以满足企业级应用的需求。

1.4、Tomcat与Nginx、Apache比较

1.4.1、优势

  • Apache:Apache是一个通用的Web服务器,支持多种编程语言,如PHP、Python、Perl等。它能够处理动态内容,并且可以通过扩展脚本和模块来支持动态页面。Apache的稳定性好,对PHP的支持相对简单,适合静态HTML和图片等资源。
  • Nginx:Nginx是一个高性能的HTTP服务器和反向代理服务器,主要用于静态资源的请求分发和负载均衡。它采用异步非阻塞的事件驱动模型,可以更好地处理大量并发请求。Nginx轻量级,占用内存少,抗并发能力强,提供负载均衡功能。
  • Tomcat:Tomcat是专为Java应用程序开发的Web应用服务器,能够处理Servlet和JSP等Java Web应用。它是开发和调试JSP程序的首选,适用于中小型系统和并发访问用户较少的场合。

1.4.2、劣势

  • Apache:配置相对复杂,自身不支持动态页面,需要额外的插件或模块来支持Java等语言。在高并发情况下,由于线程切换的开销,性能可能会下降。
  • Nginx:虽然Nginx在静态文件处理和并发能力上表现出色,但它不如Apache那样支持众多模块和动态页面处理。与Apache相比,Nginx的rewrite功能较弱,需要配合其他后端使用。
  • Tomcat:主要用作Java Web应用服务器,对静态内容的响应速度不及Apache和Nginx。在高负载情况下,性能可能会下降。

1.4.3、定位功能

  • Apache:Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器,支持多种模块,性能稳定。Apache本身适合静态HTML、图片等资源,但可以通过扩展脚本、模块等支持动态页面。
  • Nginx:Nginx是轻量级的高性能HTTP和反向代理服务器。它以其出色的性能和高并发处理能力而闻名,主要用于处理静态资源和负载均衡。
  • Tomcat:Tomcat是Java Servlet容器,专门用于运行Java Web应用程序。它可以处理HTTP请求并将其传递给Java应用程序进行处理。

1.5、Tomcat 的主要组件

  • Server:
    • Server 是最顶层的组件,代表一个Tomcat实例。在JVM中只有一个Server实例。
    • Server 可以有一个或多个Service组件。
    • 它包含一些基本属性如地址和端口,以及一个关闭命令字符串。
    • Server 在启动和关闭时会记录日志,这些日志文件通常位于CATALINA_HOME/logs目录下。
    • 它还可以包含一些Listener,这些监听器可以在Tomcat启动和关闭时执行特定任务。
  • Service:
    • Service 是Connector和Container的组合。
    • 一个Tomcat实例可以有多个Service,它们通过不同的端口来区分。
    • Service 内包含一个或多个Connector和一个Engine。
    • 每个Service可以独立配置,互不干扰。
    • 在Service中还可以配置一个共享的线程池Executor,以提高Connector间的资源利用效率。
  • Connector:
    • Connector 负责接收和处理来自客户端的请求。
    • 支持不同的网络协议(如HTTP、AJP)。
    • 可以配置为阻塞或非阻塞模式。
    • 负责将请求解析后分发给对应的Container进行处理。
    • Connector 的配置直接影响到Tomcat的性能和安全性。
  • Container:
    • Container 是处理请求的逻辑单元,包括Engine、Host、Context和Wrapper四个层级。
    • Engine 对应一个Service,负责管理Host。
    • Host 对应一个虚拟主机,可以包含多个Web应用Context。
    • Context 对应一个Web应用,包含具体的Servlet和JSP等资源。
    • Wrapper 是最小的单元,每个Wrapper封装一个Servlet实例。

1.6、Tomcat 的主要配置文件

  • server.xml:
    • 主配置文件,定义了Tomcat的基本结构,包括Service、Connector、Engine、Realm、Valve和Hosts的配置信息。
    • 可以配置Service的线程池、Connector的协议和端口、Engine下的Host和Context等。
    • server.xml的修改需要重启Tomcat才能生效。
  • web.xml:
    • 遵循Servlet规范的标准配置文件,用于配置Servlet、Filter、Listener等Web应用程序的组件。
    • 可以为所有的Web应用程序提供默认配置,包括MIME映射、Servlet初始化参数等。
    • web.xml允许程序员为特定的Web应用进行定制化配置。
  • context.xml:
    • 提供所有Host的默认配置信息。
    • 可以在不同的层级(Server、Host、Web app)进行配置。
    • context.xml的修改可以动态加载,无需重启Tomcat。
  • tomcat-users.xml:
    • 定义Realm认证时用到的相关角色、用户和密码等信息。
    • 控制对Tomcat的Manager App的访问权限。
    • 可以通过编辑此文件来添加、删除用户或为用户指定角色。
  • logging.properties:
    • 日志相关配置,定义日志级别、文件路径等。
  • catalina.policy 和 catalina.properties:
    • 分别为Java安全策略配置文件和Tomcat内部包的定义及访问控制。

二、Tomcat安装

2.1、查看可用的JDK

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search java|grep jdk
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
openjdk-asmtools-javadoc.noarch : Javadoc for openjdk-asmtools
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk.x86_64 : OpenJDK 8 Runtime Environment
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
java-1.8.0-openjdk-demo.x86_64 : OpenJDK 8 Demos
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src.x86_64 : OpenJDK 8 Source Bundle
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
java-11-openjdk-demo.i686 : OpenJDK Demos 11
java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment
java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in
java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
java-11-openjdk-src.x86_64 : OpenJDK 11 Source Bundle
java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
java-11-openjdk-static-libs.x86_64 : OpenJDK 11 libraries for static linking
ldapjdk.noarch : The Mozilla LDAP Java SDK
openjdk-asmtools.noarch : To develop tools create proper & improper Java

2.2、安装OpenJDK 11

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y java-11-openjdk java-11-openjdk-devel

2.3、配置环境变量

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

2.4、验证安装

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# java -version
openjdk version "11.0.23" 2024-04-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS, mixed mode, sharing)

2.5、查看tomcat的可以用版本

注:以下两条命令都可查看

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum list all | grep tomcat
jglobus-ssl-proxies-tomcat.noarch        2.1.0-13.el7                  epel     
tomcat.noarch                            7.0.76-16.el7_9               updates  
tomcat-admin-webapps.noarch              7.0.76-16.el7_9               updates  
tomcat-docs-webapp.noarch                7.0.76-16.el7_9               updates  
tomcat-el-2.2-api.noarch                 7.0.76-16.el7_9               updates  
tomcat-javadoc.noarch                    7.0.76-16.el7_9               updates  
tomcat-jsp-2.2-api.noarch                7.0.76-16.el7_9               updates  
tomcat-jsvc.noarch                       7.0.76-16.el7_9               updates  
tomcat-lib.noarch                        7.0.76-16.el7_9               updates  
tomcat-native.x86_64                     1.2.35-1.el7                  epel     
tomcat-servlet-3.0-api.noarch            7.0.76-16.el7_9               updates  
tomcat-webapps.noarch                    7.0.76-16.el7_9               updates  
tomcatjss.noarch                         7.2.5-1.el7                   base     
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search tomcat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
================================================================================== N/S matched: tomcat ===================================================================================
jglobus-ssl-proxies-tomcat.noarch : Globus Java - SSL and proxy certificate support for Tomcat
tomcat-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
tomcat-docs-webapp.noarch : The docs web application for Apache Tomcat
tomcat-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
tomcat-jsp-2.2-api.noarch : Apache Tomcat JSP API implementation classes
tomcat-jsvc.noarch : Apache jsvc wrapper for Apache Tomcat as separate service
tomcat-lib.noarch : Libraries needed to run the Tomcat Web container
tomcat-native.x86_64 : Tomcat native library
tomcat-servlet-3.0-api.noarch : Apache Tomcat Servlet API implementation classes
tomcat-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
tomcatjss.noarch : JSS Connector for Apache Tomcat, a JSSE module for Apache Tomcat that uses JSS
tomcat.noarch : Apache Servlet/JSP Engine, RI for Servlet 3.0/JSP 2.2 API
tomcat-el-2.2-api.noarch : Expression Language v2.2 APIName and summary matches only, use "search all" for everything.

2.6、安装tomcat

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum -y install tomcat

2.7、添加环境变量

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
export CATALINA_HOME=/usr/share/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# source /etc/profile

2.8、启动tomcat

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl start tomcat
[root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application ContainerLoaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)Active: active (running) since Sun 2024-08-18 17:39:31 CST; 8s agoMain PID: 12914 (java)CGroup: /system.slice/tomcat.service└─12914 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/to...Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardService startInternal
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting service Catalina
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardEngine startInternal
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting Servlet Engine: Apache Tomcat/7.0.76
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.startup.Catalina start
Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Server startup in 49 ms

2.9、安装Tomcat管理包

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y tomcat-webapps tomcat-admin-webapps

2.10、配置登录用户路径

[root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /usr/share/tomcat/conf/tomcat-users.xml

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

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

相关文章

Unity(四十八):Unity与Web双向交互

效果 游戏对象绑定脚本 游戏脚本源码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Tent : MonoBehaviour {public Camera camera;// Start is called before the first frame updatevoid Start(){}// Update is called once…

鸿蒙网络编程系列36-固定包头可变包体解决TCP粘包问题

1. TCP数据传输粘包简介 在本系列的第6篇文章《鸿蒙网络编程系列6-TCP数据粘包表现及原因分析》中,我们演示了TCP数据粘包的表现,如图所示: 随后解释了粘包背后的可能原因,并给出了解决TCP传输粘包问题的两种思路,第一…

网络通信与并发编程(六)线程、进程池与线程池

线程、进程池与线程池 文章目录 线程、进程池与线程池一、线程二、线程的相关操作2.1创建线程的两种方式2.2线程的其他操作2.3死锁现象和递归锁2.4条件2.5定时器2.6 队列与堆栈 三、进程池与线程池 一、线程 线程是指cpu上实际执行计算的单位,而进程是将计算所需资…

潮畔汽车文化营地开营啦!全民测试场启动典礼圆满成功

在这个充满活力与创新的时代,汽车已不仅仅是代步工具,它承载着人们对速度、自由、科技与梦想的追求,成为了一种生活方式的象征。随着汽车文化的日益丰富和多元化,如何更好地连接汽车制造商、消费者以及广大汽车爱好者,…

群控系统服务端开发模式-应用开发-业务架构逻辑开发准备工作

安装与仓库已经调整完毕,现在开发业务架构逻辑,其次再开发功能逻辑。业务架构逻辑开发与功能逻辑开发不是一回事,一定要明白。业务架构指的是做某一件事或是某一种类型的事的逻辑,在互联网web应用中通常指一套系统的外在逻辑&…

Vue学习笔记(四)

事件处理 我们可以使用 v-on 指令 (通常缩写为 符号) 来监听 DOM 事件,并在触发事件时执行一些 JavaScript。用法为 v-on:click"methodName" 或使用快捷方式 click"methodName" 事件处理器的值可以是: 内联事件处理器&#xff1…

Jetpack架构组件_LiveData组件

1.LiveData初识 LiveData:ViewModel管理要展示的数据(VM层类似于原MVP中的P层),处理业务逻辑,比如调用服务器的登陆接口业务。通过LiveData观察者模式,只要数据的值发生了改变,就会自动通知VIEW层&#xf…

基于Python大数据的王者荣耀战队数据分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

IDEA开发工具使用技巧积累

一、IDEA 工具设置默认使用maven的settings.xml文件 第一步:打开idea工具,选中 File ——> New Projects Setup ——> Settings for New Projects 第二步:先设置下自动构建项目这个选项 第三步:选中 Build Tools ——>…

windows下pycharm社区版2024下载与安装(包含新建第一个工程)

windows下pycharm社区版2024下载与安装 下载pycharm pycharm官网 安装pycharm 1.进入官网 pycharm官网 下载 点击Download–>右侧Other versions 下载对应的社区版(如下图):下载网址 2.点击运行下载好的安装包 点击下一步 3.更改pychar…

2020款Macbook Pro A2251无法充电无法开机定位及修复

问题背景 up主有一台2020年的Macbook Pro,带Touch Bar,16G512G,四核I5,型号A2251 应该是一周没充电了,之前还用的好好的,后来有一天出差想带上 打开没电,手头上有个小米的66W快充头&#xff0c…

C#的自定义Tip窗体 - 开源研究系列文章

上次编写了自定义的提示和对话框窗体,这次记录的是自定义的Tip窗体,用于显示提示操作。有时间没编程了,这次就当进行了记录。 1、 项目目录; 2、 源码介绍; 1) 实现; 2) 应用; 3、 运行界面&…

Leetcode刷题笔记12

HJ1 字符串最后一个单词的长度 字符串最后一个单词的长度_牛客题霸_牛客网 这里可以使用rfind(),rfind()函数从字符串的末尾向前查找第一个空格的位置。这个空格将是最后一个单词和前面的单词的分隔符。首先使用getline读取字符串,然后用rfind找到最后一…

现在设备普遍切换成TYPE-C适配器后,一拖三数据线接口变革探析

随着科技的飞速发展,电子设备的接口标准也在不断地更新换代。近年来,TYPE-C接口凭借其高速传输、正反可插等显著优势,逐渐成为了众多电子设备的主流接口。从智能手机到平板电脑,从笔记本电脑到移动电源,TYPE-C接口的应…

Java-图书管理系统

我的个人主页 欢迎来到我的Java图书管理系统,接下来让我们一同探索如何书写图书管理系统吧! 1管理端和用户端 2建立相关的三个包(book、operation、user) 3建立程序入口Main类 4程序运行 1.首先图书馆管理系统分为管理员端和…

TPLCM柔性屏自动化贴合应用

在当前的显示屏制造领域,TP&LCM贴合技术是推动产品升级和满足市场需求的关键环节。随着技术的不断进步,全贴合技术因其卓越的显示效果和用户体验,逐渐成为中高端产品的标配。然而,这一技术的高精度要求和复杂工艺也带来了诸多…

物联网数据采集网关详细介绍-天拓四方

一、物联网数据采集网关的概述 物联网数据采集网关,简称数据采集网关,是物联网系统中的重要组成部分,位于物联网设备和云端平台之间。其主要职责是实现数据的采集、汇聚、转换、传输等功能,确保来自不同物联网设备的数据能够统一…

学习笔记——动态路由——OSPF(距离矢量协议)OSPF路由类型

OSPF路由类型 在OSPF中,路由类型指的是不同种类的路由,用于描述网络中不同的路由信息及其传输方式。 1、Intra Area路由(区域内路由) Intra Area路由(区域内路由/本地路由/内部路由)是OSPF协议中的一种路由类型,用于描述在同一个OSPF区域内…

小白直接冲!一区蛇群优化算法+双向深度学习+注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测

小白直接冲!一区蛇群优化算法双向深度学习注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 小白直接冲!一区蛇群优化算法双向深度学习注意力机制!SO-BiTCN-BiGRU-Attention多输入单输出回归预测预测效果基本介绍程…

Linux相关概念和易错知识点(16)(Shell原理、进程属性和环境变量表的联系)

Shell原理及其模拟实现 在认识进程exec系列函数、命令行参数列表、环境变量之后,我们可以尝试理解一下Shell的原理,将各方知识串联起来,让Shell跑起来才能真正理解这些概念。我会以模拟Shell执行的原理模拟一个Shell。途中配上相关讲解。 1…