Tomcat 应用服务 WEB服务

简述:

中间件产品介绍

目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上Java语言Web站点的部分份额,该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司的Web场景中,但是其高昂的价格也使得中小型互联网公司对此望而却步。

Tomcat自5.x版本以来,其性能上已经得到很大幅度的提升,加上其开放性的框架和二次开发等特性,已经完全可以用在访问量不是很大的生产环境下,目前大多数用于JSP技术开发的电子商务网站基本上都应用了Tomcat。

中间件产品:RedHat JBoss、Oracle Tuxedo、caucho Resin

Tomcat软件简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而O'Reilly出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

其实Tomcat最早在开始研发的时候并不叫这个名字,早期的Tomcat的Logo项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下有很多Catalina有关的目录和文件。这些文件是我们配置或使用Tomcat的重要文件所在。

Tomcat应用场景

Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,应用在中小型系统和并发访问用户不是很多的场合,是开发和调试JSP页面的首选,Tomcat也可处理静态的HTML页面但是能力不及Apache或Nginx,所以Tomcat通常作为一个servlet和JSP容器,单独运行在后端。Tomcat官网: http://tomcat.apache.org

JDK软件简介

在安装Tomcat之前必须先安装JDK,JDK全称是Java Development Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,CentOS7系统中默认已经安装了JDK。

JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。JDK中还包括各种样例程序,用以展示Java API中的各部分。

环境:

四台主机

tomcat1             192.168.1.129

tomcat2             192.168.1.139

nginx                 192.168.1.127

所有主机

数据库                192.168.1.121

关闭防火墙

[root@bogon ~]# iptables -F
[root@bogon ~]# setenforce 0
[root@bogon ~]# systemctl stop firewalld

查看jdk版本
[root@bogon ~]# java -version
-bash: java: 未找到命令

卸载方法

rm -rf /usr/bin/java

或者

 rpm -qa | grep -i openjdk     查看
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64

[root@localhost ~]# rpm -e java-1.7.0-openjdk
[root@localhost ~]# rpm -e java-1.7.0-openjdk-headless
[root@localhost ~]# rpm -e java-1.8.0-openjdk --nodeps
[root@localhost ~]# rpm -e java-1.8.0-openjdk-headless

jdk安装

root@bogon ~]# tar xf jdk-8u191-linux-x64.tar.gz

[root@bogon ~]# mv jdk1.8.0_191/ /usr/local/java

[root@bogon ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java        #设置java跟目录
export PATH=$PATH:$JAVA_HOME/bin        #在PATH环境变量中添加java跟目录的bin子目录

[root@bogon ~]# source /etc/profile

查看版本

[root@bogon ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

tomcat1安装

解压apache-tomcat-8.5.16.tar.gz包

[root@bogon ~]# tar xf apache-tomcat-8.5.16.tar.gz

解压后移动到/usr/local/并改名tomcat8

[root@bogon ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat8

启动tomcat

[root@bogon ~]# /usr/local/tomcat8/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.

默认运行端口8080

[root@bogon ~]# netstat -lnpt | grep :8080
tcp6       0      0 :::8080                 :::*                    LISTEN      53382/java   
      

浏览器访问测试

 tomcat 配置目录及文件说明

[root@bogon ~]# ll /usr/local/tomcat8

总用量 92

drwxr-x---. 2 root root  4096 7月   5 18:24 bin

drwx------. 3 root root   254 7月   5 18:26 conf

drwxr-x---. 2 root root  4096 7月   5 18:24 lib

-rw-r-----. 1 root root 57092 6月  22 2017 LICENSE

drwxr-x---. 2 root root   197 7月   5 18:26 logs

-rw-r-----. 1 root root  1723 6月  22 2017 NOTICE

-rw-r-----. 1 root root  7064 6月  22 2017 RELEASE-NOTES

-rw-r-----. 1 root root 15946 6月  22 2017 RUNNING.txt

drwxr-x---. 2 root root    30 7月   5 18:24 temp

drwxr-x---. 7 root root    81 6月  22 2017 webapps

drwxr-x---. 3 root root    22 7月   5 18:26 work

主目录介绍

bin //存放windows或linux平台上启动或关闭的Tomcat的脚本文件

conf //存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml

lib //存放Tomcat运行需要的库文件(JARS)

logs //存放Tomcat执行时的LOG文件

webapps //Tomcat的主要Web发布目录、类似于nginx的html(包括应用程实例)

work //存放jsp编译后产生的.class文件

temp //存放临时文件

webapps目录介绍

docs //tomcat帮助文档

examples //web应用实例

host-manager //主机管理

manager //管理

ROOT //默认站点根目录

[root@bogon ~]# ll /usr/local/tomcat8/conf

总用量 224

drwxr-x---. 3 root root     23 7月   5 18:26 Catalina

-rw-------. 1 root root  13816 6月  22 2017 catalina.policy

-rw-------. 1 root root   7376 6月  22 2017 catalina.properties

-rw-------. 1 root root   1338 6月  22 2017 context.xml

-rw-------. 1 root root   1149 6月  22 2017 jaspic-providers.xml

-rw-------. 1 root root   2358 6月  22 2017 jaspic-providers.xsd

-rw-------. 1 root root   3622 6月  22 2017 logging.properties

-rw-------. 1 root root   7511 6月  22 2017 server.xml

-rw-------. 1 root root   2164 6月  22 2017 tomcat-users.xml

-rw-------. 1 root root   2633 6月  22 2017 tomcat-users.xsd

-rw-------. 1 root root 168251 6月  22 2017 web.xml

catalina.policy   //权限控制配置文件

catalina.properties //Tomcat属性配置文件

context.xml   //context用于指定额外的web目录 

logging.properties  //日志log相关配置文件

server.xml   //主配置文件

tomcat-users.xml   //manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问)

web.xml //Tomcat的servlet,servlet-mapping,filter,MIME等相关配置

server.xml 主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,多实例、开启https加密等功能。

server.xml的结构构成:

<Server>

<Service>

<Connector />

<Engine>

<Host>

<Context> </Context>

</Host>

</Engine>

</Service>

</Server>

<!-- --> 内的内容是注视信息

//tomcat关闭端口,默认只对本机地址开放,可以在本机通过telnet 127.0.0.1 8005访问,对Tomcat进行关闭从操作。

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

//tomcat启动的默认端口号8080,可以根据需要进行修改

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

配置虚拟主机

[root@bogon ~]# vim  /usr/local/tomcat8/conf/server.xml

148       <Host name="localhost"  appBase="webapps"

149             unpackWARs="true" autoDeploy="true">

150

151       <Context docBase="/web/webapp" path="" reloadable="flase" >

152             </Context>

这段代码是Tomcat服务器的配置文件中的一部分,用于配置一个虚拟主机(Host)。在这个虚拟主机中,设置了一个上下文(Context)的路径为根路径(""),并指定了一个Web应用程序的目录(docBase)为"/web/webapp"。reloadable属性设置为false,表示不允许在运行时重新加载该Web应用程序。

定义网站默认目录

用于存放网站文件

[root@bogon ~]#  mkdir -pv /web/webapp

mkdir: 已创建目录 "/web"

mkdir: 已创建目录 "/web/webapp"

在webapp下建立测试页面

[root@bogon conf]# vim /web/webapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

        <head>

                <title>JSP test page</title>

        </head>

        <body>

                <% out.println("Welcome to test site,http://www.你好hhhhh.com");%>

        </body>

</html>

cp /usr/local/tomcat8/conf/server.xml{,.-$(date +%F)}     可以先做个备份

从新启动tomcat服务

[root@bogon conf]# /usr/local/tomcat8/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

[root@bogon conf]# /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

Tomcat started.

可以看到服务启动都是Java命名的进程

[root@bogon conf]# tail -f /usr/local/tomcat8/logs/catalina.out

05-Jul-2023 18:49:02.986 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/docs] has finished in [10] ms

05-Jul-2023 18:49:02.987 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/examples]

05-Jul-2023 18:49:03.282 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/examples] has finished in [295] ms

05-Jul-2023 18:49:03.282 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/host-manager]

05-Jul-2023 18:49:03.327 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/host-manager] has finished in [45] ms

05-Jul-2023 18:49:03.327 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat8/webapps/manager]

05-Jul-2023 18:49:03.360 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat8/webapps/manager] has finished in [33] ms

05-Jul-2023 18:49:03.366 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]

05-Jul-2023 18:49:03.398 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]

05-Jul-2023 18:49:03.400 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 838 m

浏览器访问测试

nginx+tomcat 负载均衡集群

tomcat 2    基本和tomcat1 相同

1)关闭防火墙,selinux

2)安装JDK,配置Java环境,版本保持一致

3)安装Tomcat,版本与Tomcat 1 保持一致

4)建立一个web目录,并在里面建立一个webapp目录,用于存放网站文件

5)在webapp目录下建立一个index.jsp的测试页面

[root@bogon ~]# iptables -F

[root@bogon ~]# setenforce 0

[root@bogon ~]# systemctl stop firewalld

[root@bogon ~]#  tar xf apache-tomcat-8.5.16.tar.gz

[root@bogon ~]# tar xf jdk-8u191-linux-x64.tar.gz

[root@bogon ~]#  mv apache-tomcat-8.5.16 /usr/local/tomcat8

[root@bogon ~]#  cp /usr/local/tomcat8/conf/server.xml{,.bak}

148       <Host name="localhost"  appBase="webapps"

149             unpackWARs="true" autoDeploy="true">

150             <Context docBase="/web/webapp" path="" reloadable="flase" >

151              </Context>

 mkdir -p /web/webapp/

[root@bogon ~]# vim /web/webapp/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

        <head>

                <title>JSP test2 page</title>

        </head>

        <body>

                <% out.println("Welcome to test site,http://www.hhh好好好.com");%>

        </body>

</html>

[root@bogon ~]#  mv jdk1.8.0_191/ /usr/local/java

[root@bogon ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java        #设置java跟目录

export PATH=$PATH:$JAVA_HOME/bin        #在PATH环境变量中添加java跟目录的bin子目录

[root@bogon ~]# source /etc/profile

[root@bogon ~]# /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

njinx服务器配置   192.168.1.127      安装解决依赖

[root@bogon ~]# yum -y install pcre-devel zlib-devel openssl-devel lrzsz   

[root@bogon ~]#  tar xf nginx-1.16.0.tar.gz -C /usr/src/

[root@bogon src]# cd /usr/src/nginx-1.16.0/

[root@bogon nginx-1.16.0]#  ./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

--prefix=/usr/local/nginx //指定安装目录

--user=nginx --group=nginx  //指定运行的用户和组

--with-file-aio //启用文件修改支持

--with-http_stub_status_module //启用状态统计

--with-http_ssl_module //启用ssl模块

--with-http_flv_module //启用flv模块,提供寻求内存使用基于时间的偏移量文件

--with-http_gzip_static_module //启用gzip静态压缩

[root@bogon nginx-1.16.0]# vim /usr/local/nginx/conf/nginx.conf       配置nginx

user  nginx;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

         upstream tomcat {

        server 192.168.1.129:8080 weight=1;

        server 192.168.1.139:8080 weight=1;

    }

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

       location ~ \.jsp$ {

            proxy_pass http://tomcat;

        }

 error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

看到ok成功

[root@bogon nginx-1.16.0]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@bogon nginx-1.16.0]# /usr/local/nginx/sbin/nginx

查看端口

[root@bogon nginx-1.16.0]# netstat -anpt | grep :80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      65592/nginx: master

[root@bogon nginx-1.16.0]# ps aux | grep nginx | grep -v grep

root      65592  0.0  0.0  45980  1152 ?        Ss   19:35   0:00 nginx: master process /usr/local/nginx/sbin/nginx

nginx     65593  0.0  0.1  46368  1908 ?        S    19:35   0:00 nginx: worker process

浏览器访问   不断刷新由于权重相同,页面会反复切换

tomcat1连接数据库

指定路径解压

[root@bogon conf]# tar xf SLSaleSystem.tar.gz -C /web/webapp/

[root@bogon conf]# ls /web/webapp/SLSaleSystem/

logs  META-INF  statics  WEB-INF

[root@bogon conf]#  vim /usr/local/tomcat8/conf/server.xml

添加路径

 <Context docBase="/web/webapp/SLSaleSystem" path="" reloadable="flase" >

            </Context>

从新启动

[root@bogon conf]# /usr/local/tomcat8/bin/shutdown.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

[root@bogon conf]#  /usr/local/tomcat8/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat8

Using CATALINA_HOME:   /usr/local/tomcat8

Using CATALINA_TMPDIR: /usr/local/tomcat8/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

Tomcat started.

浏览器访问

 数据库安装  单独一台安装  IP192.168.1.121

[root@bogon ~]# yum -y install mariadb-server mariadb   安装数据库

[root@bogon ~]# systemctl start mariadb                          启动

[root@bogon ~]# mysql                                                     进入

\Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>  create database slsaledb;                      

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on slsaledb.* to admin@'%' identified by '123456';        创建并赋予权限

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>  flush privileges;                                                         刷新

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

[root@bogon ~]# mysql -uroot < slsaledb-2014-4-10.sql                   导入数据

[root@bogon ~]# vim /web/webapp/SLSaleSystem/WEB-INF/classes/jdbc.properties            更改配置文件

driverClassName=com.mysql.jdbc.Driver

url=jdbc\:mysql\://192.168.1.121\:3306/slsaledb?useUnicode\=true&characterEncoding\=UTF-8

uname=admin

password=123456

minIdle=10

maxIdle=50

initialSize=5

maxActive=100

maxWait=100

removeAbandonedTimeout=180

removeAbandoned=true

重启服务

[root@bogon ~]# /usr/local/tomcat8/bin/shutdown.sh

[root@bogon ~]#  /usr/local/tomcat8/bin/startup.sh

 访问

 

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

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

相关文章

跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制

文章目录 &#x1f4c8;UniApp⚡概念⚡优势⚡限制 &#x1f4c8;Flutter⚡概念⚡优势⚡限制 &#x1f4c8;Taro⚡概念⚡优势⚡限制 &#x1f4c8;React Native⚡概念⚡优势⚡限制 &#x1f4c8;跨端技术栈对比附录&#xff1a;「简历必备」前后端实战项目&#xff08;推荐&…

mysql常用字符串函数

1. 计算字符串字符数 CHAR_LENGTH(str)&#xff1a;返回字符总数 2. 计算字符串长度 LENGTH()&#xff1a;使用​​utf8​​编码字符集时&#xff0c;一个汉字是三字节&#xff0c;一个数字或者字母算一字节&#xff1b; 3. 合并字符串函数 CONCAT(s1,s2,...)&#xff1a;合…

Linux->初识计算机网络

目录 前言&#xff1a; 1 网络发展背景 2 协议 2.1 网络协议初识 2.2 协议分层 2.3 OSI、TCP/IP层状模型 2.4 协议和操作系统的关系 2.5 根据协议栈的通信 3 网络中的地址管理 前言&#xff1a; 本篇当中没有任何关于网络编程的讲解&#xff0c;全部是对网络的宏观理解…

MySQL的数据备份与还原--练习题

MySQLdump MySQLdump是MySQL提供的一个非常有用的数据库备份工具。MySQLdump命令执行时&#xff0c;可以将数据库备份成一个文本文件&#xff0c;该文件中实际上包含了多个CREATE 和 INSERT语句&#xff0c;使用这些语句可以重新创建表和插入数据。 看题&#xff1a; 第一题&a…

SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试【4】-O3 不支持 编译失败

gcc -O3 编译失败 结论&#xff1a;默认情况下SPEC CPU 2006 1.2 不支持 gcc -O3编译参数。

IDEA中右侧栏和底部栏不见了

IDEA中右侧栏和底部栏不见了 在开发中&#xff0c;IDEA的右侧栏目maven、database等栏目不见了 右侧栏中和底部没东西。 问题解决&#xff1a; View—>Appearance–>Tool Windows Bars 选中即可。 选中之后&#xff0c;出现

Ubuntu18.04 系统安装 Docker

1、首先更新软件源&#xff1a; sudo apt-get updatesudo apt-get upgrade 2、安装Docker&#xff1a; sudo apt install docker -y 3、查看安装的Docker apt list docker 4、查看docker 进程 ps -ef|grep docker 5、查看docker 版本有问题 6、开启Docker服务 systemctl…

【C语言】字符串函数

文章目录 一、求字符串长度strlen例子模拟实现 二、长度不受限制的字符串函数strcpy例子模拟实现 strcat例子模拟实现 strcmp例子模拟实现 三、长度受限制的字符串函数strncpy例子 strncat例子 strncmp例子 四、字符串查找strstr例子模拟实现 strtok例子 五、错误信息报告strer…

KMP算法

KMP KMP 算法是一个快速查找匹配串的算法&#xff0c;它的作用其实就是本题问题&#xff1a;如何快速在「原字符串」中找到「匹配字符串」。 而 KMP 算法的复杂度为 O(mn)实际上是O(N),因为O(M)不可能大于O(N) KMP 之所以能够在 O(mn)复杂度内完成查找&#xff0c;是因为其能…

selenium WebDriver 中的几种等待--sleep(),implicitly_wait(),WebDriverWait()

目录 强制等待:sleep() 隐式等待:implicitly_wait() 显示等待:WebDriverWait() 与until()或者until_not()方法结合使用 WebDriverWait与expected_conditions结合使用 显示等待,自定义等待条件 强制等待:sleep() import time sleep(5) #等待5秒 设置固定休眠时间&#x…

【菜鸟の笔记_利用Excel自动总结表格数据_自动链接word文本】

自动更新总结表格数据 1. 撰写原因2. 解决的问题3. Excel自动总结表格数据内容&#xff08;一段话&#xff09;。3.1问题引出3.2解决方式 4.Excel数据、总结内容&#xff0c;自动链接更新Word文本 1. 撰写原因 【GPT的答案】利用Excel自动总结表格数据有以下好处&#xff1a; …

哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议

哈工大计算机网络课程数据链路层协议详解之&#xff1a;多路访问控制&#xff08;MAC&#xff09;协议 在上一小节介绍完数据链路层功能和所提供的服务后&#xff0c;接下来我们介绍一个在数据链路层非常重要的一个协议&#xff1a;多路访问控制MAC协议。 多路访问控制主要是…