WEB集群——tomcat

1. 简述静态网页和动态网页的区别。

2. 简述 Webl.0 和 Web2.0 的区别。

3. 安装tomcat8,配置服务启动脚本,部署jpress应用。


一、简述静态网页和动态网页的区别

(1)静态网页

1.什么是静态网页    

        请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面称为静态页面

在网站设计中,纯粹 HTML 格式的网页(可以包含图片、视频 JS ( 前端功能实现)、 CSS ( 样式)等)通常 被称为" 静态网页 "

2.静态网页的优势

1. 访问的效率比较高

2. 网页内容是固定不变的,因此,容易被搜索引擎收录

3. 网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)

3.静态网页的劣势

1. 网页页面交互性交差,因为不能与数据库配合

2. 保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体

4.静态网页的特征

1. 处理文件类型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等-

2. 地址中不含有问号 " ? " 或 & 等特殊符号。

3. 保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体

4. 页内容是固定不变的,因此,容易被搜索引擎收录

5. 网页页面交互性交差,因为不能与数据库配合

6. 网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系 统上返回数据(不做任何解析)

(2)动态网页

1.什么是动态网页

          所谓的动态网页是与静态网页相对而言的,也就是说,动态网页的 URL 后缀不是 .html、.htm 、 .xml 、 .shtml 、 .js css 等静态网页的常见扩展名形式,是 .asp 、 .aspx 、 .php 、 .js 、 .do 、 .cgi 等 形式 请求响应信息,发给事务端进行处理,由服务端处理完成,将信息返回给客户端,生成的页面称为“动态页面”

2.动态网页的优势

客户端与服务器交互能力强

3.动态网页的劣势

1. 访问的效率比较低

2. 不便于被搜索引擎收录

(3)两者之间的区别

 静态网页在IE浏览器地址栏里可以看到是html或者htm结尾,网站网页内容固定不变,在服务器端与客户端的页面内容是完全相同的。当用户浏览器向网页服务器请求提供网页内容时,服务器只是将原已设计好的静态HTML文档直接传送给客户端浏览器。页面的内容使用的标准的 HTML编码加上gif图像。要更新网页的时候,只有手动地来更新所有的HTML文件。

        静态网站的致命弱点就是不易维护,为了不断更新网页内容,你必须不断地重复制作HTML文档,随着网站内容和信息量的日益扩增,你就会感到工作量大得出乎想象。而动态网页在地址栏里有asp或者php关键字,在服务器端与客户端的页面内容不相同。最原始的页面存在服务器端,根据用户反馈的内容或者要求,在服务器端计算得出结果以后,直接把结果传递到客户端电脑上显示出来。

 二、简述 Webl.0 和 Web2.0 的区别

1.Web2.0 是相对Web1.0 的新的一类互联网应用的统称。

2.Web1.0 的主要特点在于用户通过浏览器获取信息。

3.Web2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。

4.所谓网站内容的制造者是说互联网上的每一个用户不再仅仅是互联网的读者,同时也成为互联网的作者;不再仅仅是在互联网上冲浪,同时也成为波浪制造者;在模式上由单纯的“读”向“写”以及“共同建设”发展;由被动地接收互联网信息向主动创造互联网信息发展,从而更加人性化。

三、安装tomcat8,配置服务启动脚本,部署jpress应用

(1) Tomcat的介绍

Tomcat是 Apache 软件基金会( Apache Software Foundation )的 Jakarta 项目中的一个核心项目,由 Apache、 Sun 和其他一些公司及个人共同开发而成。

        Tomcat服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

        Tomcat和 Nginx 、 Apache(httpd) 、 lighttpd 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还 是一个Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过, Tomcat 处理静态 HTML 的能 力不如Nginx/Apache 服务器。

        目前Tomcat 最新版本为 9.0 。 Java 容器还有 resin 、 weblogic 等。

        Tomcat官网: http://tomcat.apache.org

(2)安装

1. 安装Tomcat和JDK

        JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的 java 应用程序。 JDK 是整个 java 开发的核心,它包含了JAVA 的运行环境( JVM+Java 系统类库)和 JAVA 工具。

[root@master java]# ll
total 124448
-rw-r--r--. 1 root root 127431820 Jul 22 23:52 jdk-8u261-linux-x64.rpm
[root@master java]# yum install jdk-8u261-linux-x64.rpm -y
[root@master java]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

 2.官网中下载tomcat8.5.70的压缩包

wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gz

3. 解压

[root@master tomcat]# tar xf apache-tomcat-8.5.70.tar.gz -C /usr/local/
[root@master tomcat]# ln -sv /usr/local/apache-tomcat-8.5.70/ /usr/local/tomcat
‘/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-8.5.70/’
[root@master tomcat]# ls /usr/local/tomcat/
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp
[root@master tomcat]# yum install tomcat -y
 

4.查看一级目录

 5.创建用户和组

[root@master tomcat]# groupadd -r -g 53 tomcat
[root@master tomcat]# useradd tomcat -u 53 -g 53 -r -c "Apache Tomcat" -s /sbin/nologin -d /usr/local/tomcat/
[root@master tomcat]# 

6.配置文件

[root@master tomcat]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
	Description=Apache Tomcat
	After=network.target remote-fs.target nss-lookup.target
 
	[Service]
	Type=forking
	Environment=JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
	Environment=CATALINA_HOME=/usr/local/tomcat
 
	ExecStart=/usr/local/tomcat/bin/startup.sh
	ExecReload=/bin/kill -s HUP $MAINPID
	ExecStop=/bin/kill -s QUIT $MAINPID
	User=tomcat
	Group=tomcat
	PrivateTmp=true
	
	[Install]
	WantedBy=multi-user.target
 
[root@master tomcat]# systemctl daemon-reload 
 

 7. 在/etc/init.d目录下,创建一个tomcat.service文件,粘贴文件内容

#!/bin/bash
	#
	# chkconfig: 35 99 28
	# description: Starts/Stops Apache Tomcat
	#
	# Tomcat 6 start/stop/status script
	#
	 
	#Location of JAVA_HOME (bin files)
	export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
	 
	#Add Java binary files to PATH
	export PATH=$JAVA_HOME/bin:$PATH
	 
	#CATALINA_HOME is the location of the bin files of Tomcat  
	export CATALINA_HOME=/usr/local/tomcat  
	 
	#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
	export CATALINA_BASE=$CATALINA_HOME
 
	#TOMCAT_USER is the default user of tomcat
	export TOMCAT_USER=tomcat
	 
	#TOMCAT_USAGE is the message if this script is called without any options
	TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"
	 
	#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
	SHUTDOWN_WAIT=20
	 
	tomcat_pid() {
			echo `ps -fe | grep $CATALINA_BASE | grep -v grep | awk '{print $2}'`
	}
	 
	start() {
		pid=$(tomcat_pid)
		if [ -n "$pid" ]
		then
				echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
		else
				# Start tomcat
				echo -e "\e[00;32mStarting tomcat\e[00m"
				#ulimit -n 100000
				#umask 007
				#/bin/su -p -s /bin/sh tomcat
				if [ `user_exists $TOMCAT_USER` = "1" ]
				then
						su $TOMCAT_USER -s /bin/bash -c $CATALINA_HOME/bin/startup.sh
				else
						sh $CATALINA_HOME/bin/startup.sh
				fi
				status
		fi
		return 0
	}
	 
	status(){
		pid=$(tomcat_pid)
			if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
			else echo -e "\e[00;31mTomcat is not running\e[00m"
			fi
	}
	 
	stop() {
		pid=$(tomcat_pid)
		if [ -n "$pid" ]
		then
				echo -e "\e[00;31mStoping Tomcat\e[00m"
				#/bin/su -p -s /bin/sh tomcat
				if [ `user_exists $TOMCAT_USER` = "1" ]
				then
					su $TOMCAT_USER -s /bin/bash -c $CATALINA_HOME/bin/shutdown.sh
				else
					sh $CATALINA_HOME/bin/shutdown.sh
				fi
				let kwait=$SHUTDOWN_WAIT
				count=0;
				until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
				do
					echo -n -e "\e[00;31mwaiting for processes to exit\n\e[00m"
					sleep 1
					let count=$count+1;
				done
	 
				if [ $count -gt $kwait ]
				then
					echo -n -e "\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\n\e[00m"
					kill -9 $pid
				fi
		else
				echo -e "\e[00;31mTomcat is not running\e[00m"
		fi
	 
		return 0
	}
	 
	user_exists() {
			if id -u $1 >/dev/null 2>&1
			then
					echo "1"
				else
						echo "0"
				fi
	}
	 
	case $1 in
	 
			start)
			  start
			  ;;
		   
			stop)  
			  stop
			  ;;
		   
			restart)
			  stop
			  start
			  ;;
		   
			status)
			  status    
			  ;;
		   
			*)
			  echo -e $TOMCAT_USAGE
			  ;;
	esac    
	exit 

8.添加执行权限

[root@master tomcat]# chmod +x /etc/init.d/tomcat.service 
[root@master tomcat]# chkconfig --add tomcat.service

 9. 启动Tomcat

[root@master tomcat]# service tomcat.service start 
/etc/init.d/tomcat.service: line 1: cription:: command not found
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_261-amd64/
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@master tomcat]# 

10.测试访问主页:192.168.136.201:8080

 (3)部署jpress应用

1.安装数据库mariadb

[root@localhost ~]# yum install mariadb-server -y

2.创建数据库和用户

[root@localhost ~]# mysql -uroot -p123456 -e  "create database jpress DEFAULT CHARACTER SET utf8;"
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost ~]# mysql -uroot -p123456 -e  "grant all on jpress.* to jpress@'localhost' identified by '123456';"
mysql: [Warning] Using a password on the command line interface can be insecure.

3.把下载好的.war文件放入/webapps目录下,  jpress 官网: http://jpress.io

[root@localhost ~]# ll
total 20320
-rw-------. 1 root root     1426 Jul 23 08:05 anaconda-ks.cfg
-rw-r--r--. 1 root root 20797013 Aug  2 10:54 jpress-web-newest.war
drwxr-xr-x. 3 root root       19 Jul 23 01:15 mysql
-rw-r--r--. 1 root root      336 Jul 23 23:33 temp_date.sql
drwxr-xr-x. 2 root root       41 Jul 24 03:03 tomcat
[root@localhost ~]# cp jpress-web-newest.war /usr/local/tomcat/webapps/jress-web-newest.war
[root@localhost ~]# ls /usr/local/tomcat/webapps/jress-web-newestMETA-INF  robots.txt  static  templates  WEB-INF

4.使用浏览器访问

http://192.168.136.201:8080/jress-web-newest/install

 5.安装完成

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高级IO:五种IO模型

五种IO模型 阻塞IO 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式. 非阻塞IO 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EAGAIN/EWOULDBLOCK错误码. 非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这…

学习gRPC (三)

测试gRPC例子 编写proto文件实现服务端代码实现客户端代码 通过gRPC 已经编译并且安装好之后,就可以在源码目录下找到example 文件夹下来试用gRPC 提供的例子。 在这里我使用VS2022来打开仓库目录下example/cpp/helloworld目录 编写proto文件 下面是我改写的exa…

【前端实习生备战秋招】—HTML 和 CSS面试题总结(二)

【前端实习生备战秋招】—HTML 和 CSS面试题总结&#xff08;二&#xff09; 1.有哪些方式可以对一个 DOM 设置它的 CSS 样式&#xff1f; 外部样式表&#xff0c;引入一个外部 css 文件内部样式表&#xff0c;将 css 代码放在 <head> 标签内部内联样式&#xff0c;将 c…

PROFINET转TCP/IP网关profinet网线接头接法

大家好&#xff0c;今天要和大家分享一款自主研发的通讯网关&#xff0c;捷米JM-PN-TCPIP。这款网关可是集多种功能于一身&#xff0c;PROFINET从站功能&#xff0c;让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗&#xff1f;一起来看看吧&…

【移动机器人运动规划】02 —— 基于采样的规划算法

文章目录 前言相关代码整理:相关文章&#xff1a; 基本概念概率路线图&#xff08;Probabilistic Road Map&#xff09;基本流程预处理阶段查询阶段 优缺点&#xff08;pros&cons&#xff09;一些改进算法Lazy collision-checking Rapidly-exploring Random Tree算法伪代码…

构建稳健的PostgreSQL数据库:备份、恢复与灾难恢复策略

在当今数字化时代&#xff0c;数据成为企业最宝贵的资产之一。而数据库是存储、管理和保护这些数据的核心。PostgreSQL&#xff0c;作为一个强大的开源关系型数据库管理系统&#xff0c;被广泛用于各种企业和应用场景。然而&#xff0c;即使使用了最强大的数据库系统&#xff0…

Unity Shader:常用的C#与shader交互的方法

俗话说久病成医&#xff0c;虽然不是专业技术美术&#xff0c;但代码写久了自然会积累一些常用的shader交互方法。零零散散的&#xff0c;总结如下&#xff1a; 1&#xff0c;改变UGUI的材质球属性 有时候我们需要改变ui的一些属性&#xff0c;从而实现想要的效果。通常UGUI上…

Kafka的配置和使用

目录 1.服务器用docker安装kafka 2.springboot集成kafka实现生产者和消费者 1.服务器用docker安装kafka ①、安装docker&#xff08;docker类似于linux的软件商店&#xff0c;下载所有应用都能从docker去下载&#xff09; a、自动安装 curl -fsSL https://get.docker.com | b…

有哪些好用的AI绘画网站?

随着人工智能技术的发展&#xff0c;人工智能绘画工具逐渐成为数字艺术领域的热门话题。人工智能绘画工具是利用深度学习和其他技术来模拟绘画过程和效果的工具&#xff0c;可以帮助用户快速创作高质量的艺术作品。除了Midjourney、除了openai等流行的AI绘画工具外&#xff0c;…

使用WiFi测量仪进行机器人定位的粒子过滤器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

K3s vs K8s:轻量级对决 - 探索替代方案

在当今云原生应用的领域中&#xff0c;Kubernetes&#xff08;简称K8s&#xff09;已经成为了无可争议的领导者。然而&#xff0c;随着应用规模的不断增长&#xff0c;一些开发者和运维人员开始感受到了K8s的重量级特性所带来的挑战。为了解决这一问题&#xff0c;一个名为K3s的…

python 常见数据类型和方法

不可变数据类型 不支持直接增删改 只能查 str 字符串 int 整型 bool 布尔值 None None型特殊常量 tuple 元组(,,,)回到顶部 可变数据类型&#xff0c;支持增删改查 list 列表[,,,] dic 字典{"":"","": ,} set 集合("",""…

「Qt」常用事件介绍

&#x1f514; 在开始本文的学习之前&#xff0c;笔者希望读者已经阅读过《「Qt」事件概念》这篇文章了。本文会在上篇文章的基础上&#xff0c;进一步介绍 Qt 中一些比较常用的事件。 0、引言 当我们想要让控件收到某个事件时做一些操作&#xff0c;通常都需要重写相应的事件处…

Python---Numpy

文章目录 1.Numpy是什么&#xff1f;2.ndarray2.1 什么是ndarray?2.2 ndarray的属性2.3 ndarray的类型 3.Numpy基本操作3.1 生成0或1的数组3.2 从现有数组生成数组拓展&#xff1a;浅拷贝和深拷贝 3.3 生成固定范围的数组3.4 生成随机数组3.4.1 正态分布3.4.2 均匀分布 3.5 形…

5款无广告的超实用软件,建议收藏!

​ 大家好,我又来了,今天向大家推荐几款软件,它们有个共同的特点,就是无广告、超级实用,大家看完之后,可以自己去搜索下载试用。 1.重复文件清理——Duplicate Cleaner ​ Duplicate Cleaner是一款用于找出硬盘中重复文件并删除的工具。它可以通过内容或文件名查找重复文档、…

多语言gRPC开发入门与避坑指南

目录 gRPC相关介绍 什么是gPRC gPRC的优点 gPRC的缺点 gPRC定位 协议缓冲区&#xff08;Protocol Buffers&#xff09; 四种调用方式 gRPC开发三大步骤 第一步&#xff1a;定义和编写proto服务文件 第二步&#xff1a;proto文件转化为gRPC代码 第三步&#xff1a;调…

IDEA中maven项目失效,pom.xml文件橙色/橘色

IDEA中maven项目失效&#xff0c;pom.xml文件橙色/橘色 IDEA中Maven项目失效 IDEA中创建的maven项目中的文件夹都变成普通格式&#xff0c;pom.xml变成橙色 右键点击橙色的pom.xml文件&#xff0c;选择add as maven project maven项目开始重新导入相应依赖&#xff0c;恢复…

QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 终篇

QT图形视图系统 - 终篇 接上一篇&#xff0c;我们需要继续完成以下的效果&#xff1b; 先上个效果图&#xff1a; 修改背景&#xff0c;使之整体适配 上一篇我们绘制了标尺&#xff0c;并且我们修改了放大缩小和对应的背景&#xff0c;整体看来&#xff0c;我们的滚动条会和…

单篇笔记曝光248万+,素颜、寸头…小红书女性种草新趋势分析!

最近&#xff0c;小红书上刮起一阵素颜、寸头&#xff0c;拒绝美丽绑架的风潮&#xff0c;他们称之为“脱美役”&#xff0c;即脱离美丽枷锁&#xff0c;做自己&#xff0c;接纳原本的自己。这是女性觉醒的又一阵风&#xff0c;品牌要如何跟上这波种草新趋势呢&#xff1f; 单篇…

村田授权代理:共模扼流线圈针对汽车专用设备高频噪声的降噪对策

车载市场正不断扩充ADAS、自动驾驶、V2X、车载信息系统等的应用。由于此类应用要处理庞大的信息&#xff0c;因此为了执行处理&#xff0c;内部处理信号的处理速度亦不断高速化。另一方面&#xff0c;由于部件数量增多&#xff0c;安装密度增大&#xff0c;因此要求部件小型化。…