Tomcat服务部署
目录
一. Tomcat概述
1.1 什么是Tomcat
1.2 安装Tomcat
1.2.1 CentOS7 安装
1.2.2 ubuntu 安装
1.2.3 使用脚本快速安装
二. 配置文件及核心组件
2.1 配置文件
2.1.1 安装目录下文件介绍
2.1.2 conf子目录
2.2 组件
三. tomcat 处理请求过程
四. 常见配置详解
4.1 主页文件的优先级
4.2 状态页
4.2.1 开启状态页(只能在本机登录)
4.2.2 开启允许远程状态页
4.3 常见的端口
五. 虚拟主机配置
六. tomcat nginx 动静分离
6.1 配置单级反向代理
6.2 多级反向代理
七. 实现Java项目
7.1 自建博客
一. Tomcat概述
1.1 什么是Tomcat
Tomcat 是一个开源的 Java Servlet 容器 和 Web 服务器,由 Apache 软件基金会开发和维护。它实现了 Java EE(Jakarta EE) 中的 Servlet、JSP(JavaServer Pages)和 WebSocket 规范,是运行 Java Web 应用程序的核心环境之一。
1.2 安装Tomcat
注意:安装tomcat 前必须先部署JDK。
JDK(Java Development Kit,Java 开发工具包 是 Oracle 公司(原 Sun 公司)提供的 Java 开发核心工具包,用于 开发、编译和运行 Java 程序。它是 Java 生态系统的基石,包含 JRE(Java 运行时环境) 和 开发工具(如编译器、调试器)。)
1.2.1 CentOS7 安装
#在centos7-1上安装cd /data/#拖入Java开发工具包(JDK)和Tomcat服务器的压缩包ls
tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/
tar xf apache-tomcat-9.0.16.tar.gz -C /usr/local/cd /usr/local
ls
ln -s jdk1.8.0_291/ jdk#配置JDK的环境变量,让系统正确识别Java相关命令
vim /etc/profile.d/jdk.shexport JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
#加载并执行 /etc/profile.d/jdk.sh 文件中的内容。
source /etc/profile.d/jdk.sh#检查当前系统中安装的 Java 版本。
java -version#创建一个符号链接(软链接)。
ln -s apache-tomcat-9.0.16/ tomcat#创建一个名为 tomcat 的系统用户。
useradd tomcat#更改目录及其内容的所属用户和组。
chown tomcat:tomcat apache-tomcat-9.0.16/ -R#定义 Tomcat 服务的运行方式
vim /usr/lib/systemd/system/tomcat.service[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
Environment=PATH=$PATH:$JAVA_HOME/bin
Environment=CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=JAVA_HOME=/usr/local/jdk
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/jdk/bin
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat
1.2.2 ubuntu 安装
#在ubuntu 1上安装cd /opt/#拖入Java开发工具包(JDK)和Tomcat服务器的压缩包ls
tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/tar xf apache-tomcat-9.0.16.tar.gz -C /usr/local/cd /usr/localls
ln -s jdk1.8.0_291/ jdkvim /etc/profile.d/jdk.shexport JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
source /etc/profile.d/jdk.shjava -versionuseradd tomcatchown tomcat:tomcat apache-tomcat-9.0.16/ -R
ln -s apache-tomcat-9.0.16/ tomcat
ls
vim /usr/lib/systemd/system/tomcat.serviceAfter=syslog.target network.target[Service]
Type=forking
Environment=PATH=$PATH:$JAVA_HOME/bin
Environment=CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=JAVA_HOME=/usr/local/jdk
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/jdk/bin
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat
1.2.3 使用脚本快速安装
centos7-2cd /data/#拖入拖入Java开发工具包(JDK)Tomcat服务器的压缩包和运行脚本
#运行脚本
bash install_tomcat_.shsystemctl status tomcat
二. 配置文件及核心组件
2.1 配置文件
2.1.1 安装目录下文件介绍
目录名字 | 功能 |
---|---|
bin | 存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件 |
conf | 存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。 |
lib | 存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包 |
logs | 存放 Tomcat 日志 catalina.out比较常使用 |
temp | 存放 Tomcat 运行时产生的文件 |
webapps | 存放项目资源的目录 |
work | Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到(升级版本时注意要删除里面的缓存) |
2.1.2 conf子目录
文件名 | 说明 |
---|---|
server.xml | 主配置文件 全局生效 |
web.xml | 每个webapp只有“部署"后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件 |
context.xml | 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件 |
tomcat-users.xml | 用户认证的账号和密码文件 |
catalina.policy | 当使用security选项启动omcat时,用于为tomcat设置安全策略 |
catalina.properties | Tomcat环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数 |
logging.properties | Tomcat日志系统相关的配置,可以修改日志级别和日志路径等 |
注意配置文件对于大小写敏感 |
2.2 组件
(1) Server
-
作用:Tomcat 的顶级容器,代表整个 Tomcat 实例。
-
功能:管理所有其他组件(如 Service 和 Connector)的生命周期。
(2) Service
-
作用:将 Connector 和 Engine 组合在一起,形成一个完整的服务。
-
功能:一个 Server 可以包含多个 Service,每个 Service 可以独立运行。
(3) Connector
-
作用:负责处理客户端请求并将其传递给 Engine。
-
功能:支持多种协议(如 HTTP、HTTPS、AJP)。
-
示例:
-
HTTP/1.1 Connector:处理 HTTP 请求。
-
AJP Connector:处理 Apache HTTP Server 与 Tomcat 之间的通信。
-
(4) Engine
-
作用:处理所有请求的核心组件。
-
功能:管理多个 Host(虚拟主机)并决定将请求路由到哪个 Host。
(5) Host
-
作用:代表一个虚拟主机,用于托管多个 Web 应用程序。
-
功能:每个 Host 可以包含多个 Context(Web 应用程序)。
-
示例:默认的
localhost
Host。
(6) Context
-
作用:代表一个 Web 应用程序。
-
功能:管理应用程序的资源(如 Servlet、JSP、静态文件)。
-
示例:每个 WAR 文件部署后会生成一个 Context。
(7) 内嵌类
可以内嵌到其他组件内,valve、logger、realm、loader、manager等。以logger举例,在不同容器组件内分别定义。
(8) 集群类组件
listener、cluster
三. tomcat 处理请求过程
-
假设来自客户的请求为: http://localhost:8080/test/index.jsp 浏览器端的请求被发送到服务端端口8080,Tomcat进程监听在此端口上。通过侦听的HTTP/1.1Connector获得此请求。
-
Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的响应
-
Engine获得请求192.168.91.100:8080/test/index.jsp,遍历它所有虚拟主机Host
-
Engine匹配到名为localhost的Host。如果匹配不到,就把请求交给该Engine中的defaultHost处理. localhost Host获得请求/test/index.jsp,匹配它所拥有的所有Context
-
Host匹配到路径为/test的Context
-
path=/test的Context获得请求index.jsp,在它的mapping table中寻找对应的servlet path = alias
-
Context匹配到URLPATTERN为*.jsp的Sservlet,对应于]spServlet类构造HtpServletRequest对象和HttpServletResponse对象,作为参数调用)spSer let的doGet或doPost方法。
-
Context把执行完了之后的HttpServletResponse对象返回给Host
-
Host把HttpServletResponse对象返回给Engine
-
Engine把HttpServletResponse对象返回给Connector
-
Connector把HttpServletResponse对象返回给浏览器端
四. 常见配置详解
4.1 主页文件的优先级
Tomcat 会按照 <welcome-file> 的顺序依次查找文件。
如果找到第一个文件(如 index.html),则返回该文件作为响应。
如果第一个文件不存在,则继续查找第二个文件(如 index.htm),依此类推。
如果所有文件都不存在,Tomcat 会返回目录列表(如果目录列表功能已启用)或返回 404 错误。
vim /usr/local/tomcat/conf/web.xml<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list>假设用户访问 http://localhost:8080/app/:Tomcat 首先查找 index.html。
如果 index.html 存在,则返回该文件。
如果不存在,继续查找 index.htm。
查找 index.htm。
如果 index.htm 存在,则返回该文件。
如果不存在,继续查找 index.jsp。
查找 index.jsp。
如果 index.jsp 存在,则返回该文件。
如果不存在,Tomcat 返回目录列表或 404 错误。
4.2 状态页
在 Tomcat 中,"状态页"(Status Page)通常指的是 Tomcat 提供的用于监控服务器运行状态的页面。这些页面可以显示服务器的运行信息,如连接数、线程池状态、内存使用情况等。
4.2.1 开启状态页(只能在本机登录)
默认的管理页面被禁用,启用方法如下
cd /usr/local/tomcat/confvim tomcat-users.xml<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
systemctl restart tomcatsystemctl status tomcat
4.2.2 开启允许远程状态页
cd /usr/local/tomcat/webapps/managerlscd META-INFvim context.xmlsystemctl restart tomcat
4.3 常见的端口
8080: 默认接收 http 请求的端口
8005: 安全端口,可以关闭tomcat
8009: apache 和 tomcat 联动 AJP 协议
五. 虚拟主机配置
Tomcat 的虚拟主机(Virtual Host)配置是为了支持在同一台服务器上运行多个独立的网站或应用程序,每个网站或应用程序可以拥有不同的域名、文件路径和配置。
配置步骤如下:
centos7-1
ls /usr/local/tomcat/webapps/cd /data/
rm -rf *mkdir -pv web{1,2,3}/ROOT
echo "web1 www.a.com" > web1/ROOT/index.html
echo "web2 www.b.com" > web2/ROOT/index.html
echo "web3 www.c.com" > web3/ROOT/index.htmlcat web1/ROOT/index.htmlvim /usr/local/tomcat/conf/server.xml
systemctl restart tomcat
centos7-2
vim /etc/hosts
192.168.52.101 nodel www.a.com www.b.com www.c.comcurl www.a.com:8080curl www.b.com:8080curl www.c.com:8080
六. tomcat nginx 动静分离
6.1 配置单级反向代理
单级反向代理(Single-Level Reverse Proxy)是一种常见的网络架构设计,通常用于将客户端的请求转发到后端服务器,并将后端服务器的响应返回给客户端。反向代理在客户端和后端服务器之间充当中间层,提供负载均衡、安全性、缓存等功能。
在配置虚拟主机的基础上:
客户机;192.168.52.105----------->uduntunginx服务器:192.168.52.31------->uduntu-1tomcat服务器1:192.168.52.101---->centos7-1tomcat服务器2:192.168.52.102---->centos7-2
centos7-2
yum install epel-release.noarch -y(不要手打,可能会出错,用tab补全)
yum install nginx -y
systemctl start nginx
vim /etc/nginx/nginx.conflocation / {proxy_pass http://www.a.com:8080/;}
nginx -tsystemctl restart nginxcurl www.a.com:8080curl www.b.com:8080curl www.c.com:8080cd /usr/local/tomcat/webapps/ROOT
mv index.jsp index.jsp.bak
vim index.jsp
7-2 102
centos7-1
cd /usr/local/tomcat/webapps/ROOT
mv index.jsp index.jsp.bak
vim index.jsp
7-1 101
ubuntu-1
apt install nginx -y
systemctl start nginx
systemctl status nginxcd /etc/nginx/
vim nginx.conf
include /etc/nginx/sites-enabled/*;(复制)
cd /etc/nginx/sites-enabled/
ls
ll
vim default
#添加以下内容
upstream tomcat {
server 192.168.52.101:8080;
server 192.168.52.102:8080;
}location ~* \.jsp$ {
proxy_pass http;//tomcat;
}
nginx -tsystemctl restart nginxcd /var/www/html/vim index.htmlubuntu2204-1
ubuntucurl 192.168.52.31/index.htmlcurl 192.168.52.31/index.jsp
6.2 多级反向代理
7-1 代理服务器systemctl stop firewalld
setenforce 0
yum install epel-release.noarch -y
yum install nginx -y
systemctl start nginx
vim /etc/nginx/nginx.confupstream web {server 192.168.91.101;server 192.168.91.102;}location / {proxy_pass http://web/;}nginx -s reload
7-2 nginx服务器1systemctl stop firewalld
setenforce 0
yum install epel-release.noarch -y
yum install nginx -y
systemctl start nginxvim /etc/nginx/nginx.conflocation ~ \.(jpg|html|png|css)$ {root /usr/share/nginx/html;}location ~ \.jsp$ {proxy_pass http://192.168.91.103:8080;}echo 7-2 > /usr/share/nginx/html/index.html
7-3 nginx 代理服务器systemctl stop firewalld
setenforce 0
yum install epel-release.noarch -y
yum install nginx -y
systemctl start nginxvim /etc/nginx/nginx.conflocation ~ \.(jpg|html|png|css)$ {root /usr/share/nginx/html;}location ~ \.jsp$ {proxy_pass http://192.168.91.105:8080;}echo 7-3 > /usr/share/nginx/html/index.html
7-4 tomcat 服务器
安装tomcat 跑脚本
echo 7-4 > /usr/local/tomcat/webapps/ROOT/test.jsp7-5 tomcat 服务器
安装tomcat 跑脚本
echo 7-5 > /usr/local/tomcat/webapps/ROOT/test.jp
七. 实现Java项目
7.1 自建博客
#在centos7-1上安装cd /usr/local/tomcat/webapps#将jpress-v3.2.1.war文件拖入其中ln -s jpress-v3.2.1 jpresscat >/etc/yum.repos.d/mysql.repo <<EOF
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
EOFyum -y install mysql-community-serversystemctl start mysqldgrep password /var/log/mysqld.logmysql -u root -p'自己的密码'set global validate_password_policy=0;
set global validate_password_length=1;
#修改密码策略alter user root@'localhost' identified by 'abc123';CREATE DATABASE blog;
GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
相关文章:
Tomcat服务部署
目录 一. Tomcat概述 1.1 什么是Tomcat 1.2 安装Tomcat 1.2.1 CentOS7 安装 1.2.2 ubuntu 安装 1.2.3 使用脚本快速安装 二. 配置文件及核心组件 2.1 配置文件 2.1.1 安装目录下文件介绍 2.1.2 conf子目录 2.2 组件 三. tomcat 处理请求过程 四. 常见配置详解 4.…...
Chrome更新到136以后selenium等自动化浏览器失效
Chrome更新到136以后,已经不再支持对默认浏览器数据文件夹进行自动化调试,从而导致selenium在指定user-data-dir为默认路径“C:\Users\{计算机名}\AppData\Local\Google\Chrome\User Data”会报错,相应地的selenium-wire,undetect…...
数据库原理期末考试速成--最后附带两套题
引言 为什么从3开始呢,毕竟是速成吗,总要放弃一些东西 前两章1.概论 2.关系数据库:这里面都是一些运算符什么的,我感觉都学这个:笛卡尔积之列的都会算 这两章比较重要的我就放在这里了 选择、投影、连接、除、并、交、差,其中选择、投影、并、差、笛卡尔积是5种基本关…...
网络基础1(应用层、传输层)
目录 一、应用层 1.1 序列化和反序列化 1.2 HTTP协议 1.2.1 URL 1.2.2 HTTP协议格式 1.2.3 HTTP服务器示例 二、传输层 2.1 端口号 2.1.1 netstat 2.1.2 pidof 2.2 UDP协议 2.2.1 UDP的特点 2.2.2 基于UDP的应用层…...
使用Spring Boot集成Nacos
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它集成了服务发现、服务配置和服务管理等功能,是微服务架构中一个非常重要的组件。以下是使用Spring Boot集成Nacos的详细步骤。 1. 环境准备 确保你已经安装和配置了以下环境࿱…...
破局智算瓶颈:400G光模块如何重构AI时代的网络神经脉络
一、技术演进与市场需求双重驱动 在数字化转型浪潮下,全球互联网流量正以每年30%的复合增长率持续攀升。根据Dell’Oro Group最新报告,2023年400G光模块市场规模已突破15亿美元,预计2026年将占据数据中心光模块市场60%以上份额。这种爆发式增…...
Vue:插值表达
Vue 的插值表达式是数据绑定的基础形式,它通过 {{ }} 将 JavaScript 数据动态渲染到模板中。下面通过代码示例,直观感受它的用法和限制。 基础用法 <template><div><!-- 直接显示数据 --><p>{{ messag…...
26考研|数学分析:函数列与函数项级数
前言 函数列与函数项级数这一章虽然课本安排章节较少,只要两小节,但是在具体学习过程中,确实会有一定的难度,首先难点便是在对于函数列与函数项级数的理解,其次关于一致收敛性质的理解与判断,也是难点所在…...
设置环境变量启动jar报
1. 环境变量设置 set PATHC:\Program Files\java17\jdk-17.0.9\bin;%PATH%2. 启动jar java -jar jar包名3. 记录原因 PATH路径前添加java执行文件路径才会管用。添加后可以试试以下命令 直接输入PATH 回车 PATH进行java版本测试 java -version...
项目售后服务承诺书,软件售后服务方案,软件安装文档,操作文档,维护文档(Word原件)
一、系统安全性保障 (一)设计原则 (二)应用安全 (三)数据安全 (四)用户安全 (五)管理安全 二、售后服务 (一)服务总体要…...
Arduino快速入门
Arduino快速入门指南 一、硬件准备 选择开发板: 推荐使用 Arduino UNO(兼容性强,适合初学者),其他常见型号包括NANO(体积小)、Mega(接口更多)。准备基础元件:…...
每日一题——樱桃分级优化问题:最小化标准差的动态规划与DFS解决方案
文章目录 一、问题描述输入格式输出格式 二、问题本质分析三、解题思路1. 前缀和预处理2. DFS 枚举与剪枝3. 剪枝策略4. 标准差计算 四、代码实现五、样例解析样例 1样例 2 六、一行行代码带你敲dfs 七、总结 一、问题描述 某大型樱桃加工厂使用自动化机械扫描了一批樱桃的尺寸…...
C++类与对象(二):六个默认构造函数(一)
在学C语言时,实现栈和队列时容易忘记初始化和销毁,就会造成内存泄漏。而在C的类中我们忘记写初始化和销毁函数时,编译器会自动生成构造函数和析构函数,对应的初始化和在对象生命周期结束时清理资源。那是什么是默认构造函数呢&…...
荣耀手机,系统MagicOS 9.0 USB配置没有音频来源后无法被adb检测到,无法真机调试的解决办法
荣耀手机,系统MagicOS 9.0 USB配置没有音频来源后无法被adb检测到,无法真机调试的解决办法 前言环境说明操作方法 前言 一直在使用的uni-app真机运行荣耀手机方法,都是通过设置USB配置的音频来源才能成功。突然,因为我的手机的系…...
每日分享-Python哈希加盐加密实战分享
没事找事干,找到本地有个hashdemo.py,那就来分享一下代码吧,主要内容就是使用python实现哈希加盐加密方式。 1、导入所需库 不多BB,先打开我们的 pychram 然后导入所需要用到的库 import hashlib import random import strin…...
Webpack中Compiler详解以及自定义loader和plugin详解
Webpack Compiler 源码全面解析 Compiler 类图解析: 1. Tapable 基类 Webpack 插件系统的核心,提供钩子注册(plugin)和触发(applyPlugins)能力。Compiler 和 Compilation 均继承此类,支持插件…...
deepseek-coder-6.7b-instruct安装与体验-success
目录 步骤1:安装环境 步骤2:下载模型 步骤3:安装依赖 步骤4:运行模型 报错NameError: name torch is not defined 步骤5:运行结果 步骤1:安装环境 pip install modelscope 步骤2:下载模型 modelscope download --model deepseek-ai/deepseek-coder-6.7b-instruct --lo…...
对抗进行性核上性麻痹,健康护理筑牢生活防线
进行性核上性麻痹是一种复杂的神经退行性疾病,主要影响患者的运动、平衡及吞咽等功能,随着病情进展,患者生活质量会受到严重影响。除规范治疗外,科学的健康护理是提高患者生活质量、延缓病情发展的重要手段。 日常活动护理是基础。…...
科学养生,拥抱健康生活
在生活节奏日益加快的今天,养生不再是遥不可及的概念,而是可以融入日常的健康生活方式。即使抛开中医理念,通过科学的生活方式选择,也能为身体注入源源不断的活力。 从营养管理开始,构建科学的饮食体系。采用 “321 饮…...
基于若依框架的岗位名称查询模块实现
表名:sys_post(若依自带的一个表) 目标:获取post_name中所有的名字 模块结构说明 src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── ruoyi/ │ │ └── nametraversal/ │ │…...
(2)Python爬虫--requests
文章目录 前言一、 认识requests库1.1 前情回顾1.2 为什么要学习requests库1.3 requests库的基本使用1.4 响应的保存1.5 requests常用的方法1.6 用户代理1.7 requests库:构建ua池(可以先跳过去)1.8 requests库:带单个参数的get请求1.9 requests库&#x…...
springboot旅游小程序-计算机毕业设计源码76696
目 录 摘要 1 绪论 1.1研究背景与意义 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统…...
TCPIP详解 卷1协议 七 防火墙和网络地址转换
7.1——防火墙和网络地址转换 为防止终端系统不被攻击,需要一种方法来控制互联网中网络流量的流向。这项工作由防火墙来完成,它是一种能够限制所转发的流量类型的路由器。 随着部署防火墙来保护企业,另一个问题变得越来越重要:可…...
Golang 应用的 CI/CD 与 K8S 自动化部署全流程指南
一、CI/CD 流程设计与工具选择 1. 技术栈选择 版本控制:Git(推荐 GitHub/GitLab)CI 工具:Jenkins/GitLab CI/GitHub Actions(本文以 GitHub Actions 为例)容器化:Docker Docker Compose制品库…...
Jenkins:库博静态工具CI/CD 的卓越之选
在当今快节奏的软件开发领域,高效的持续集成(CI)和持续交付(CD)流程对于项目的成功至关重要。Jenkins 作为开源 CI/CD 软件的领导者,以其强大的功能、丰富的插件生态和高度的可扩展性,成为众多开…...
Maven私服搭建与登录全攻略
目录 1.背景2.简介3.安装4.启动总结参考文献 1.背景 回顾下maven的构建流程,如果没有私服,我们所需的所有jar包都需要通过maven的中央仓库或者第三方的maven仓库下载到本地,当一个公司或者一个团队所有人都重复的从maven仓库下载jar包&#…...
大模型数据分析破局之路20250512
大模型数据分析破局之路 本文面向 AI 初学者、数据分析从业者与企业技术负责人,围绕大模型如何为数据分析带来范式转变展开,从传统数据分析困境谈起,延伸到 LLM MCP 的协同突破,最终落脚在企业实践建议。 🌍 开篇导语…...
数据结构-树(1)
一、树的基本概念 二,树的抽象数据结构 三,树的存储结构 1.双亲表示法 数组存储结点,含数据域和双亲下标(根结点双亲为 - 1) 代码示例 include <stdio.h> #include <stdlib.h>#define MAX_TREE_SIZE 10…...
什么是ERP?ERP有哪些功能?小微企业ERP系统源码,SpringBoot+Vue+ElementUI+UniAPP
什么是ERP? ERP翻译过来叫企业资源计划,通俗的讲,应该叫企业的全面预算控制,其通常包括三个部分:工程预算、投资预算和经营预算(即产销存预算)。之所以做预算控制,是因为企业运作的…...
视觉-语言-动作模型:概念、进展、应用与挑战(上)
25年5月来自 Cornell 大学、香港科大和希腊 U Peloponnese 的论文“Vision-Language-Action Models: Concepts, Progress, Applications and Challenges”。 视觉-语言-动作 (VLA) 模型标志着人工智能的变革性进步,旨在将感知、自然语言理解和具体动作统一在一个计…...
C++ 与 Go、Rust、C#:基于实践场景的语言特性对比
目录 编辑 一、语法特性对比 1.1 变量声明与数据类型 1.2 函数与控制流 1.3 面向对象特性 二、性能表现对比编辑 2.1 基准测试数据 在计算密集型任务(如 10⁷ 次加法运算)中: 在内存分配测试(10⁵ 次对象创建…...
RDB和AOF的区别
Redis提供两种主要的持久化机制:RDB(Redis Database)和AOF(Append Only File),它们在数据持久化方式、性能影响及恢复策略上各有特点。以下是两者的对比分析及使用建议: RDB(快照持久…...
因子分析基础指南:原理、步骤与地球化学数据分析应用解析
前言 在看深度学习成矿预测以及地球化学数据分析的文献的时候很多引言部分的内容会提到一些老的技术,正所谓:知其然知其所以然。所以我把关于一些老技术的基础铺垫的内容作为:研究生基础指南部分进行记录。 这部分讲述的是因子分析…...
采用AI神经网络降噪算法的通信语音降噪(ENC)模组性能测试和应用
采用AI降噪的语言通话环境抑制模组性能效果测试 随着AI时代来临.通话设备的环境噪音抑制也进入AI降噪算法时代. AI神经网络降噪技术是一款革命性的语音处理技术,他突破了传统单麦克风和双麦克风降噪的局限性,利用采集的各种日常环境中的噪音样本进行训练学习.让降噪…...
面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
在当今的高并发、大数据时代,系统架构的复杂性呈指数级增长。你是否曾遇到过这样的问题:用户订单提交后,系统响应缓慢甚至卡顿?或者在业务高峰期,消息积压导致系统崩溃? 这些问题的背后,往往隐…...
【落羽的落羽 C++】stack和queue、deque、priority_queue、仿函数
文章目录 一、stack和queue1. 概述2. 使用3. 模拟实现 二、deque三、priority_queue1. 概述和使用2. 模拟实现 四、仿函数 一、stack和queue 1. 概述 我们之前学习的vector和list,以及下面要认识的deque,都属于STL的容器(containers&#x…...
Golang 空结构体特性与用法
文章目录 1.简介2.核心特性2.1 零内存占用2.2 值比较语义2.3 类型隔离2.4 值地址 3.作用3.1 实现集合(Set)3.2 不发送数据的信道3.3 无状态方法接收者3.4 作为 context 的 value 的 key 4.小结参考文献 1.简介 在 Go 语言中,空结构体是一个不…...
企业对数据集成工具的需求及 ETL 工具工作原理详解
当下,数据已然成为企业运营发展过程中的关键生产要素,其重要性不言而喻。 海量的数据分散在企业的各类系统、平台以及不同的业务部门之中,企业要充分挖掘这些数据背后所蕴含的巨大价值,实现数据驱动的精准决策,数据集…...
基于HTTP头部字段的SQL注入:SQLi-labs第17-20关
前置知识:HTTP头部介绍 HTTP(超文本传输协议)头部(Headers)是客户端和服务器在通信时传递的元数据,用于控制请求和响应的行为、传递附加信息或定义内容类型等。它们分为请求头(Request Headers&…...
Megatron系列——流水线并行
内容总结自:bilibili zomi 视频大模型流水线并行 注:这里PipeDream 1F1B对应时PP,Interleaved 1F1B对应的是VPP 1、朴素流水线并行 备注: (1)红色三个圈都为空泡时间,GPU没有做任何计算 &am…...
Android HttpAPI通信问题(待解决)
使用ClearTextTraffic是Android中一项重要的网络设置,它控制了应用程序是否允许在不使用HTTPS加密的情况下访问网络。在默认情况下,usescleartexttraffic的值为true,这意味着应用程序可以通过普通的HTTP协议进行网络通信。然而,这…...
WebFlux vs WebMVC vs Servlet 对比
WebFlux vs WebMVC vs Servlet 技术对比 WebFlux、WebMVC 和 Servlet 是 Java Web 开发中三种不同的技术架构,它们在编程模型、并发模型和适用场景上有显著区别。以下是它们的核心对比: 核心区别总览 特性ServletSpring WebMVCSpring WebFlux编程模型…...
Spring MVC参数传递
本内容采用最新SpringBoot3框架版本,视频观看地址:B站视频播放 1. Postman基础 Postman是一个接口测试工具,Postman相当于一个客户端,可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果。 2. Spring MVC相关注解 3. Spring MVC参数传递 Spri…...
Spring MVC 和 Spring Boot 是如何访问静态资源的?
Spring MVC 和 Spring Boot 在配置静态资源访问方面有所不同,Spring Boot 提供了更便捷的自动配置。 一、Spring Boot 如何配置静态资源访问 (推荐方式) Spring Boot 遵循“约定优于配置”的原则,对静态资源的访问提供了非常方便的自动配置。 默认静态…...
如何应对网站被爬虫和采集?综合防护策略与实用方案
在互联网时代,网站内容被恶意爬虫或采集工具窃取已成为常见问题。这不仅侵犯原创权益,还可能影响网站性能和SEO排名。以下是结合技术、策略与法律的综合解决方案,帮助网站构建有效防护体系。 一、技术防护:阻断爬虫的“技术防线”…...
MySQL 分页查询优化
目录 前言1. LIMIT offset, count 的性能陷阱:为什么它慢?😩2. 优化策略一:基于排序字段的“跳跃式”查询 (Seek Method) 🚀3. 优化策略二:利用子查询优化 OFFSET 扫描 (ID Subquery)4. 基础优化࿱…...
我用Deepseek + 亮数据爬虫神器 1小时做出輿情分析器
我用Deepseek 亮数据爬虫神器 1小时做出輿情分析器 一、前言二、Web Scraper API 实战(1)选择对应的URL(2)点击进入对应url界面(3)API结果实例和爬取结果展示(4)用户直接使用post请…...
langchain4j中使用milvus向量数据库做RAG增加索引
安装milvus向量数据库 官方网址 https://milvus.io/zh 使用docker安装milvus mkdir -p /data/docker/milvus cd /data/docker/milvus wget https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh#在docker中启动milvus sh standalone_emb…...
【开源工具】深度解析:基于PyQt6的Windows时间校时同步工具开发全攻略
🕒 【开源工具】深度解析:基于PyQt6的Windows时间校时同步工具开发全攻略 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热…...
开源 RPA 工具深度解析与官网指引
开源 RPA 工具深度解析与官网指引 摘要 :本文深入解析了多款开源 RPA 工具,涵盖 TagUI、Aibote、Taskt 等,分别介绍了它们的核心功能,并提供了各工具的官网链接,方便读者进一步了解与使用,同时给出了基于不…...