WEB应用服务器TOMCAT
知识点
一 、WEB技术
1、前端三大核心技术
1.1 HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>老李老李出门见喜</h1>
</body>
</html>
1.2CSS(Cascading Style Sheets)层叠样式表
HTML 本身为了格式化显示文本,但是当网页呈现大家面前的时候,需求 HTML 提供更多样式能力。这使得HTML 变得越来越臃肿。这促使了 CSS 的诞生。1994 年, W3C 成立, CSS 设计小组所有成员加入 W3C ,并努力研发 CSS 的标准,微软最终加入。1996 年 12 月发布 CSS 1.0 。1998 年 5 月发布 CSS 2.0CSS 3 采用了模块化思想,每个模块都在 CSS 2 基础上分别增强功能。所以,这些模块是陆续发布的。不同厂家的浏览器使用的引擎,对CSS 的支持不一样,导致网页布局、样式在不同浏览器不一样。因此,想要保证不同用户使用不同浏览器看到的网页效果一直非常困难。
1.3 JavaScript
二、WEB框架
1、web资源和访问
- 从静态服务器请求HTML、CSS、JS等文件发送到浏览器端,浏览器端接收后渲染在浏览器上从图片服务器请求图片资源显示
- 从业务服务器访问动态内容,动态内容是请求后有后台服务访问数据库后得到的,最终返回到浏览器端
2、后台应用架构
2.1单体架构
2.2 微服务
2.3 单体架构和微服务比较
- 每个服务足够内聚,足够小,代码容易理解。这样能聚焦一个只当的业务功能或业务需求。
- 开发简单、开发效率提高,一个服务可能就是专业的只干一件事,微服务能够被小团队单独开发,这个小团队可以是2到5人的开发人员组成
- 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
- 微服务能使用不同的语言开发
- 易于和第三方集成,微服务运行容易且灵活的方式集成自动部署,通过持续集成工具,如:
- Jenkins、Hudson、Bamboo
- 微服务易于被一个开发人员理解、修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值
- 微服务允许你利用融合最新技术。微服务只是业务逻辑的代码,不会和HTML/CSS或其他界面组件混合,即前后端分离
- 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库
- 微服务把原有的一个项目拆分成多个独立工程,增加了开发、测试、运维、监控等的复杂度
- 微服务架构需要保证不同服务之间的数据一致性,引入了分布式事务和异步补偿机制,为设计和开发带来一定挑战
- 开发人员和运维需要处理分布式系统的复杂性,需要更强的技术能力
- 微服务适用于复杂的大系统,对于小型应用使用微服务,进行盲目的拆分只会增加其维护和开发成本
- 阿里开源贡献给了ASF,目前已经是Apache的顶级项目
- 一款高性能的Java RPC服务框架,微服务生态体系中的一个重要组件
- 将单体程序分解成多个功能服务模块,模块间使用Dubbo框架提供的高性能RPC通信
- 内部协调使用Zookeeper,实现服务注册、服务发现和服务治理
- 一个完整的微服务解决方案,相当于Dubbo的超集
- 微服务框架,将单体应用拆分为粒度更小的单一功能服务
- 基于HTTP协议的REST(Representational State Transfer 表述性状态转移)风格实现模块间通信
三、tomcat的功能介绍
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小
型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还
是一个Servlet和JSP容器
官网 :http://tomcat.apache.org/官网文档 :https://tomcat.apache.org/tomcat-8.5-doc/index.html帮助文档 :https://cwiki.apache.org/confluence/display/tomcat/https://cwiki.apache.org/confluence/display/tomcat/FAQ
1、安装tomcat
1.1安装java环境
[root@tomcat ~]# yum install java-1.8.0-openjdk.x86_64 -y
1.2安装并启动tomcat
[root@tomcat ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/[root@tomcat ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
1.3查看端口
1.4访问tomcat
2、tomcat的文件结构和组成
2.1目录结构
2.2 查看tomcat相关目录和文件
3、生成tomcat的启动文件
3.1生成tomcat的主配置文件
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat.confJAVA_HOME=/etc/alternatives/jre_openjdk
3.2生成启动文件
[root@tomcat ~]# useradd -s /sbin/nologin -M tomcat[root@tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat[root@tomcat ~]# vim /lib/systemd/system/tomcat.service[Unit]Description=Tomcat#After=syslog.target network.target remote-fs.target nss-lookup.targetAfter=syslog.target network.target[Service]Type=forkingEnvironmentFile=/usr/local/tomcat/conf/tomcat.confExecStart=/usr/local/tomcat/bin/startup.shExecStop=/usr/local/tomcat/bin/shutdown.shPrivateTmp=trueUser=tomcatGroup=tomcat[Install]WantedBy=multi-user.target
[root@tomcat ~]# systemctl daemon-reload[root@tomcat ~]# systemctl enable --now tomcat
四 、结合反向代理实现tomcat部署
1、 常见部署方式介绍
2 、利用 nginx 反向代理实现
- 利用nginx反向代理功能,实现图中的代理功能,将用户请求全部转发至指定的同一个tomcat主机
- 利用nginx指令proxy_pass 可以向后端服务器转发请求报文,并且在转发时会保留客户端的请求报文中的host首部
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conflocation ~ \.jsp$ {proxy_pass http://172.25.254.10:8080;}
3、实现tomcat中的负载均衡
3.1 HTTP的无状态,有连接和短连接
- 浏览器端第一次HTTP请求服务器端时,在服务器端使用session这种技术,就可以在服务器端 产生一个随机值即SessionID发给浏览器端,浏览器端收到后会保持这个SessionID在Cookie当 中,这个Cookie值一般不能持久存储,浏览器关闭就消失。浏览器在每一次提交HTTP请求的时候会把这个SessionID传给服务器端,服务器端就可以通过比对知道是谁了
- Session通常会保存在服务器端内存中,如果没有持久化,则易丢失
- Session会定时过期。过期后浏览器如果再访问,服务端发现没有此ID,将给浏览器端重新发 新的SessionID
更换浏览器也将重新获得新的 SessionID
有连接:是因为它基于TCP协议,是面向连接的,需要3次握手、4次断开。
服务器端如果故障,即使 Session 被持久化了,但是服务没有恢复前都不能使用这些 SessionID 。如果使用 HAProxy 或者 Nginx 等做负载均衡器,调度到了不同的 Tomcat 上,那么也会出现找不到SessionID的情况。
3.2 tomcat负载均衡实现
五、Memcached
1、 Memcached简介
2、memcached的安装与启动
[root@tomcat ~]# yum install memcached -y[root@tomcat ~]# vim /etc/sysconfig/memcachedPORT="11211"USER="memcached"MAXCONN="1024"CACHESIZE="64"OPTIONS="-l 0.0.0.0,::1"[root@tomcat ~]# systemctl enable --now memcached[root@tomcat ~]# netstat -antlupe | grep memcachetcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN980 97815 34711/memcached
3、memcached 操作命令
- set
- add
- replace
- get
- delete
# 参数说明如下:command set/add/replacekey key 用于查找缓存值flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息expiration time 在缓存中保存键值对的时间长度(以秒为单位, 0 表示永远)bytes 在缓存中存储的字节数value 存储的值(始终位于第二行)# 增加 key ,过期时间为秒, bytes 为存储数据的字节数add key flags exptime bytes
六、session 共享服务器
1、 msm 介绍
2、安装
kryo-3.0.3.jarasm-5.2.jarobjenesis-2.6.jarreflectasm-1.11.9.jarminlog-1.3.1.jarkryo-serializers-0.45.jarmsm-kryo-serializer-2.3.2.jarmemcached-session-manager-tc9-2.3.2.jarspymemcached-2.12.3.jarmemcached-session-manager-2.3.2.jar
3、配置过程
实验部分
1、tomcat部署
[root@web10 ~]# hostnamectl hostname tomcat-node1.timinglee.org
[root@web20 ~]# hostnamectl hostname tomcat-node2.timinglee.org
安装java环境
[root@tomcat-node1 ~]# dnf install java-1.8.0-openjdk.x86_64 -y
[root@tomcat-node1 ~]# ll /etc/alternatives/jre_openjdk/
总用量 184
-rw-r--r-- 1 root root 1522 1月 13 2024 ASSEMBLY_EXCEPTION
drwxr-xr-x 2 root root 188 8月 21 11:45 bin
drwxr-xr-x 9 root root 4096 8月 21 11:45 lib
-rw-r--r-- 1 root root 19274 1月 13 2024 LICENSE
-rw-r--r-- 1 root root 158253 1月 13 2024 THIRD_PARTY_README
安装并启动tomcat
查看端口
访问tomcat
生成tomcat的主配置文件
[root@tomcat-node1 conf]# vim tomcat.conf
生成启动文件
[root@tomcat-node1 conf]# vim /lib/systemd/system/tomcat.service
[root@tomcat-node1 conf]# useradd -s /sbin/nologin -M tomcat
[root@tomcat-node1 conf]# chown -R tomcat.tomcat /usr/local/tomcat/
[root@tomcat-node1 conf]# ls /usr/local/tomcat/ -ld
drwxr-xr-x 9 tomcat tomcat 220 8月 21 11:48 /usr/local/tomcat/
开启Tomcat
[root@tomcat-node1 conf]# systemctl daemon-reload
[root@tomcat-node1 conf]# systemctl enable --now tomcat
配置第二台主机
[root@tomcat-node2 ~]# ll /etc/alternatives/jre_openjdk/
总用量 184
-rw-r--r-- 1 root root 1522 1月 13 2024 ASSEMBLY_EXCEPTION
drwxr-xr-x 2 root root 188 8月 21 11:46 bin
drwxr-xr-x 9 root root 4096 8月 21 11:46 lib
-rw-r--r-- 1 root root 19274 1月 13 2024 LICENSE
-rw-r--r-- 1 root root 158253 1月 13 2024 THIRD_PARTY_README
[root@tomcat-node2 ~]# useradd -s /sbin/nologin -M tomact
[root@tomcat-node1 ~]# rsync -ar /usr/local/apache-tomcat-9.0.93 root@172.25.254.20:/usr/local/apache-tomcat-9.0.93
[root@tomcat-node1 ~]# rsync -ar /lib/systemd/system/tomcat.service root@172.25.254.20:/lib/systemd/system/tomcat.service
[root@tomcat-node2 local]# ln -s apache-tomcat-9.0.93 tomcat
[root@tomcat-node2 local]# chown -R tomcat.tomcat /usr/local/tomcat
[root@tomcat-node2 local]# ls /usr/local/tomcat/ -ld
drwxr-xr-x 9 tomcat tomcat 220 8月 21 12:21 /usr/local/tomcat/
[root@tomcat-node2 local]# systemctl daemon-reload
[root@tomcat-node2 local]# systemctl enable --now tomcat
2、反向代理
[root@tomcat-node1 ~]# ls
apache-tomcat-9.0.93.tar.gz test.jsp
[root@tomcat-node1 ~]# vim test.jsp
[root@tomcat-node1 ~]# cp test.jsp /usr/local/tomcat/webapps/ROOT/
[root@tomcat-node1 ~]# scp test.jsp root@172.25.254.20:/usr/local/tomcat/webapps/ROOT/
root@172.25.254.20's password:
test.jsp 100% 968 627.5KB/s 00:00
[root@nginx conf.d]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx conf.d]# nginx -s reload
负载均衡
[root@nginx conf.d]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx conf.d]# nginx -s reload
回话保持
[root@nginx conf.d]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx conf.d]# nginx -s reload
[root@nginx conf.d]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx conf.d]# nginx -s reload
3、session丢失
[root@tomcat-node1 ~]# dnf install memcached -y
[root@tomcat-node2 ~]# dnf install memcached -y
[root@tomcat-node1 ~]# vim /etc/sysconfig/memcached
[root@tomcat-node1 ~]# systemctl start memcached.service
[root@tomcat-node1 ~]# netstat -antlupe | grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 979 145332 39085/memcached
tcp6 0 0 ::1:11211 :::* LISTEN 979 145333 39085/memcached
[root@tomcat-node1 ~]# dnf install telnet -y
[root@tomcat-node1 conf]# systemctl restart tomcat.service
[root@tomcat-node2 conf]# systemctl restart tomcat.service
[root@tomcat-node1 conf]# systemctl stop tomcat.service
相关文章:
WEB应用服务器TOMCAT
知识点 一 、WEB技术 1、前端三大核心技术 1.1 HTML HTML ( HyperText Markup Language )超文本标记语言,它不同于一般的编程语言。超文本 即超出纯文本的范畴,例如:描述文本颜色、大小、字体等信息,或使…...
maven打包jar后运行提示“没有主清单属性”问题的几种解决方案
常用的几种maven项目打包后,jar运行提示“没有主清单属性”问题的解决方案,大部分都是要修改pom.xml文件,同时有几种自己常用的配置文件,主要供自用,勿喷。 第一种: <build><plugins><plug…...
计算机毕业设计选题推荐-民宿可视化分析-Python爬虫-随机森林算法
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
WKWebView加载项目中网页的资源图片路径异常
问题原因,将含有html的文件通过如下方式引入到工程中: 这种处理方式,当应用程序变以后,引入的文件会被全部放在Resources目录下,而忽略你原本的文件路径信息。因此导致出问题。 解决方案: 采用如下方式引…...
算法全面剖析
算法 查找算法: 顺序查找: 基本思想: 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功&am…...
tp5php7.4配置sqlserver问题汇总
先修改database.php文件 查看php版本选择sqlserver扩展 通过百度网盘分享的文件:sqlserver 链接:https://pan.baidu.com/s/1zrIV8VWQZM9miLpyH01Aww?pwdxdgx 提取码:xdgx 通过我的分享链接复制自己需要的dll到php的ext下 在php.ini里添加扩…...
C语言随笔:字面量
字面量(Literal)是指程序源代码中直接写出的固定值。字面量用于表示数据常量,它们在程序编译时被直接解析并用于程序运行。 常见的字面量类型 整数字面量(Integer Literals) 描述:表示整数值。示例&#x…...
chainlit的基本概念聊天对话中的元素
文本消息是聊天机器人的组成部分,但我们通常希望向用户发送的不仅仅是文本,还包括图像、视频等。 这就是元素出现的地方。每个元素都是一段内容,可以附加到Message或Step 并显示在用户界面上。 chainlit支持的元素如下: 文本元…...
【LeetCode:3】无重复字符串的最长子串(Java)
题目链接 3. 无重复字符串的最长子串 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbb…...
C#对字典使用Linq查询
Dictionary<int, int> dic new Dictionary<int, int>();dic.Add(1, 2);dic.Add(2, 3);dic.Add(3, 4);dic.Add(4, 5);dic.Add(5, 6);//筛选键var keys dic.Where(item > item.Key > 2).Select(item > item.Key);foreach (var item in keys){Console.Writ…...
【Vue】Vue基础
系列文章目录 第二章 Vue基础(1) 文章目录 系列文章目录第一节:Vue介绍一、Vue介绍二、Vue项目创建三、项目结构介绍 第二节:组合式API一、基本介绍二、setup介绍三、setup上指定组件名称 第三节:响应式变量一、使用r…...
贪心 + 分层图bfs,newcoder 76652/B
目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 https://ac.nowcoder.com/acm/contest/76652/B 二、解题报告 1、思路分析…...
如何在Linux上部署Java Web应用程序
在Linux上部署Java Web应用程序是一个常见的任务,本文将介绍一种常用的方法,分为以下几个步骤: 准备服务器 首先,你需要准备一台运行Linux操作系统的服务器。你可以选择使用各种不同的Linux发行版,如Ubuntu、CentOS等…...
SpringBoot 整合 Excel 轻松实现数据自由导入导出
01、背景介绍 在实际的业务系统开发过程中,操作 Excel 实现数据的导入导出基本上是个非常常见的需求。 之前,我们有介绍一款非常好用的工具:EasyPoi,有读者提出在数据量大的情况下,EasyPoi 会占用内存大,…...
PyTorch 基础学习(13)- 混合精度训练
系列文章: 《PyTorch 基础学习》文章索引 基本概念 混合精度训练是深度学习中一种优化技术,旨在通过结合高精度(torch.float32)和低精度(如 torch.float16 或 torch.bfloat16)数据类型的优势,…...
Mycat分片-垂直拆分
目录 场景 配置 测试 全局表配置 续接上篇:MySQ分库分表与MyCat安装配置-CSDN博客 续接下篇:Mycat分片-水平拆分-CSDN博客 场景 在业务系统中, 涉及以下表结构 ,但是由于用户与订单每天都会产生大量的数据, 单台服务器的数据 存储及处理能力是有限…...
一元四次方程求解-【附MATLAB代码】
目录 前言 求解方法 编辑 MATLAB验证 附:一元四次方程的故事 前言 最近在研究机器人的干涉(碰撞)检测,遇到了一个问题,就是在求椭圆到原点的最短距离时,构建的方程是一个一元四次方程。无论是高中的…...
【极限性能,尽在掌控】ROG NUC:游戏与创作的微型巨擘
初见ROG NUC,你或许会为它的小巧体型惊讶。然而,这看似不起眼的机身内,蕴藏着游戏、创意的强大能量。 掌中风暴,性能无界 ROG NUC搭载英特尔高性能处理器,配合高速NVMe SSD固态硬盘以及可选的高端独立显卡(…...
Ecosmos开启公测,将深度赋能CIOE中国光博会元宇宙参会新体验
如今,生成式AI技术的发展,极大地降低了3D数字资产的制作成本,元宇宙作为一种可以无缝将物理和数字资产进行融合的技术,在推动电子产业数字化进程、助力产业高质量发展的方面展现出了巨大的潜力。 当前,发展新质生产力是…...
【Kubernetes】k8s集群之包管理器Helm
目录 一.Helm概述 1.Helm的简介 2.Helm的三个重要概念 3.Helm2与Helm3的的区别 二.Helm 部署 1.安装 helm 2.使用 helm 安装 Chart 3.Helm 自定义模板 4.Helm 仓库 每个成功的软件平台都有一个优秀的打包系统,比如Debian、Ubuntu 的 apt,RedH…...
嵌入式linux系统镜像制作day3(构建镜像)
点击上方"蓝字"关注我们 01、上节回顾 嵌入式linux系统镜像制作day1嵌入式linux系统镜像制作day2提前下载好准备工具,不然失败了大眼瞪小眼。 02、构建 Poky 的 Sato 镜像1 环境: ubuntu18.04poky版本:Dizzy 工具git 在开始之前,针对不同的发行版,需要先执行…...
【生日视频制作】教师节中秋节国庆节车模特美女举牌AE模板修改文字软件生成器教程特效素材【AE模板】
教师节中秋节国庆节车模特美女举牌生日视频制作教程AE模板改文字软件生成器素材 怎么如何做的【生日视频制作】教师节中秋节国庆节车模特美女举牌AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件下载AE模板把AE模板导入AE软件修改图…...
RongCallKit iOS 端本地私有 pod 方案
RongCallKit iOS 端本地私有 pod 方案 需求背景 适用于源码集成 CallKit 时,使用 pod 管理 RTC framework 以及源码。集成 CallKit 时,需要定制化修改 CallKit 的样式以及部分 UI 功能。适用于 CallKit 源码 Debug 调试便于定位相关问题。 解决方案 从…...
C++11:可变参数模板
目录 一、概述 二、场景 1.深拷贝的类 2.浅拷贝的类 C使用指南 一、概述 // Args是一个模板参数包,args是一个函数形参参数包 // 声明一个参数包Args...args,这个参数包中可以包含0到任意个模板参数。 template <class ...Args> void ShowList(…...
C++ 与 QML 之间进行数据交互的几种方法
https://www.cnblogs.com/jzcn/p/17774676.html 一、属性绑定 这是最简单的方式,可以在QML中直接绑定C 对象的属性。通过在C 对象中使用Q_PROPERTY宏定义属性,然后在QML中使用绑定语法将属性与QML元素关联起来。 1. person.h #include <QObject&g…...
Javaweb学习之Vue项目的创建(二)
学习资料 Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org) 准备工作都做完了,接下来开始Vue的正式学习。 第一步,打开VS Code 在VS Code里,我们也需要使用到终端,如果不是以管理员身份打开,在新建Vue项目的时候…...
『深度长文』4种有效提高LLM输出质量的方法!
LLM,全称Large Language Model,意为大型语言模型,是一种基于深度学习的AI技术,能够生成、理解和处理自然语言文本,也因此成为当前大多数AI工具的核心引擎。LLM通过学习海量的文本数据,掌握了词汇、语法、语…...
【工业机器人】工业异常检测大模型AnomalyGPT
AnomalyGPT 工业异常检测视觉大模型AnomalyGPT AnomalyGPT: Detecting Industrial Anomalies using Large Vision-Language Models AnomalyGPT是一种基于大视觉语言模型(LVLM)的新型工业异常检测(IAD)方法。它利用LVLM的能力来理…...
【PGCCC】PostgreSQL案例:planning time超长问题分析#PG初级
在使用 PostgreSQL 时,查询的执行计划(planning time)有时会出现异常长的情况,这可能会影响数据库的整体性能。分析和解决这种问题可以从多个角度入手,以下是常见原因和相应的解决思路: 1. 统计信息不准确…...
【图文并茂】ant design pro 如何给后端发送 json web token - 请求拦截器的使用
上一节有讲过 【图文并茂】ant design pro 如何对接后端个人信息接口 还差一个东西,去获取个人信息的时候,是要发送 token 的,不然会报 403. 就是说在你登录之后才去获得个人信息。这样后端才能知道是谁的信息。 token 就代码了某个人。 …...
益阳 网站制作维护/优化的含义
在使用STM32的hal库的时候,我们常常可以看到很多库自带的函数有很多是使用__weak修饰的,比如: 这个修饰符的作用是什么呢? 函数名称前面加上__weak 修饰符,我们一般称这个函数为“弱函数”。 加上了__weak 修饰符的…...
网站建设与管理是哪个软件/站长之家最新域名查询
我为vlookup开发了代码但是我在处理错误时遇到了麻烦 . Sheet1上的列的值正在Sheet2的列中查找 . 结果显示在Sheet3上 .有2个实例会出现错误:如果查找值列中的单元格为空如果查找值不在表数组中如果查找值的单元格为空,我希望结果显示空白 . 如果查找值不…...
货代一般都去哪个网站找客户/aso优化方法
本篇文章主要针对《数据结构》中的顺序表的增删查改以及一些常用算法进行详尽的代码描述。本代码使用c语言书写,并且通过测试。可以直接拷贝编译,在你的main函数中进行测试。#include #include #define MaxSize 50 //顺序表的表长#define InitSize 100 /…...
个人网站开发流程/关键词排名零芯互联排名
CentOS 6.5 安装Apache服务器后无法访问解决方法。类似的症状在参考文献中均有所描述,只是解决方法稍作修改。原文1中建议在防火墙中增加规则开启80端口,方法如下:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j …...
ctf wordpress/seo专业术语
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3598 Solved: 2110[Submit][Status][Discuss]Description 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。万圣节到了,“余”人国流…...
怎样建设好网站/嘉兴seo网络推广
规则1 每个 PR 审查至少需要 2 个同组开发者的批准,管理者的审批不统计。 首先要注意的是,由于我所在的是一个 3 人团队,这是最理想的。所有的 修改 3 个开发者都 100% 知情。如果团队规模更大,情况可能会有所不同。你所追求的是…...