tomcat 1

1、 Tomcat介绍
Tomcat是apache软件基金会项目中的一个核心项目,有apache和sun其他一些公司及个人共同开发而成的
Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是多的场合下被普遍使用,是开发和调试jsp程序的首选
可以这样认为,当一台服务器配置好apache服务器以后,可以利用apache服务器来响应我们的html页面的访问请求,而tomcat是 apahce 服务器的扩展,当你运行tomcat的时候实际上是作为一个apache独立的进程单独运行的,apache服务器为html页面提供服务的,而tomcat是运行jsp页面和servlet,另外tomcat也能具有处理html页面的功能,但是处理静态的能力没有apache处理好

Jsp:java服务器页面,是一个简化的servlet设计,在传统的HTML页面里面增加了java代码
jsp=html+java代码+jsp标签 (也就是html页面包含有java代码)
2、 tomcat组件
servlet(应用程序或者容器)是java提供的用于开发web服务器应用程序的一个组件,运行在服务器端,有servlet用于生成动态页面内容,servlet是平台独立的java类,编写一个servlet,实际上就是安装servlet规范编写一个java类
2.1、什么是servlet ?
Tomcat 处理请求和响应的过程是由servlet的程序来完成的,并且servlet是为例解决实现动态页面而衍生的东西,与我们之前了解的nginx或者apache想要实现动态页面需要和php服务器沟通的过程差不多,可以把servlet比作成php
在这里插入图片描述
Tomcat 是web应用服务器,是一个servlet/jsp容器,tomcat作为servlet容器,负责处理客户请求,并将servlet的响应传送给客户,而servlet是一种运行在java语言的服务器上的组件,servlet最常见的用途是扩展java web服务器功能,提供非常安全的,可以移植的(打包网页代码就可以在另外一个环境中运行,如linux系统跟windows环境),易于使用cgi替代品
2.2、Tomcat处理数据的流程:
1、浏览器发送请求数据
2、tomcat收到服务器的请求数据,由servlet容器处理并进行解析,并且把客户端的数据请求request改变成servlet request 交给后端的servlet 实例(或者或叫对象)
实例收到客户端的请求数据的请求对象,进行出处理客户端的请求,处理完成后将数据响应给servlet容器,响应给servlet容器叫做servlet response
3、Servlet收到的实例的响应数据交给客户端
在这里插入图片描述
Servlet(tomcat)容器与servlet实例需要通过java servlet api接口进行通信,api接口是由开发人员在写代码的时候定义或者编写的
2.3、Servlet和jsp的区别:
servlet请求和处理数据比较方便,但是页面处理完成的结果通过html标签返回给客户端数据非常麻烦
毫无格式的jsp显示数据非常方便,像html格式一样,但是封装页面数据比较麻烦
3、 tomcat的特点:
运行时占用的资源小,扩展性好,支持负载均衡和邮件服务器等开发应用系统常用的功能
4、安装tomcat环境需要系统java环境1.8版本以上
Jdk :java语言的开发工具包
安装jdk
[root@localhost ~]# rpm -qa | grep jdk
[root@localhost ~]# rpm -e java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7 --nodeps #卸载系统自带的jdk环境
[root@localhost ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# vim /etc/profile
在最后一行添加以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_211 #指定java的路径
export JRE_HOME=/usr/local/jdk1.8.0_211/jre #java运行环境
export CLASSPATH= J A V A H O M E / l i b / t o o l s . j a r : JAVA_HOME/lib/tools.jar: JAVAHOME/lib/tools.jar:JAVA_HOME/lib/dt.jar
#声明java中的类,类就是一类事务的属性,如各种盖饭最终他们的属性是饭
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:JRE_HOME/bin:$PATH
在这里插入图片描述
[root@localhost ~]# source /etc/profile

[root@localhost ~]# tar zxf apache-tomcat-8.5.35.tar.gz
[root@localhost ~]# mv apache-tomcat-8.5.35 /usr/local/tomcat
Tomcat目录说明
Bin:存放windows或linux平台上启动或者关闭tomcat的脚本文件
Conf:存放tomcat服务器的全局配置文件,其中最重要的是server.xml和web.xml
Lib:tomcat运行需要的库文件(jars)
Logs:tomcat运行时产生的日志文件
Temp:临时文件存放目录
Work:tomcat的工作目录,存放tomcat运行时的编译配置文件
Webapps:网页文件存放路径
Tomcat常用配置文件说明
Server.xml:tomcat的主配置文件,可以设置端口号,设置域名或者IP
Web.xml: 缺省的web app配置(也可以理解为是实现主配置文件没有定义到的功能:如目录遍历,定义错误页面类型)
Tomcat-users.xml:用来配置管理tomcat的用户与权限
运行tomcat,端口号为8080

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh

[root@localhost ~]# netstat -anput | grep 8080
在这里插入图片描述
在这里插入图片描述

4、 tomcat中server.xml文件结构
在这里插入图片描述
Server:代表整个容器,实例的顶层元素,一个配置文件中只能有一个server元素,可以包含多个service

能够远程关闭tomcat,使用telnet连接8005 输入SHUTDOWN
在这里插入图片描述
Serivrce:提供完整jvm的独立组件 jvm:java虚拟机,是一个虚构出来的虚拟机,可以 包含一个engine 包含多个connector
在这里插入图片描述
代表处理所有tomcat接受的请求
Service name = “apache” 代表处理所有apache转发过来的请求

Connector :接口定义,负责接受客户端的请求,以及向客户端返回响应结果
在这里插入图片描述
Prot接收数据端口
Protocol:设置http协议
Connectiontimeout :与客户端的连接超时时间 -1 代表不限制客户端的连接时间
Redirectport :当客户端请求是https将请求转发到8443去

Engine: 处理客户端的请求,可以包含多个hots
在这里插入图片描述
Name是引擎名字,处理客户的请求默认去寻找localhost
Host:定义的虚拟主机,为特定的虚拟主机处理所有的客户端请求
在这里插入图片描述
Context:运行在虚拟主机中的单个web应用
Tomcat处理http请求过程
在这里插入图片描述
假设和客户端请求一个页面http://192.168.83.3/bdqn/index.jsp
1) 请求被发送到tomcat的8080端口,被connector获得
2) Connector把该请求交给他所在的service的engine来处理,等待engine的处理结果
3) Engine 匹配到名为localhost的host将请求交给host
4) Host匹配到路径为/bdqn的context
5) Context匹配到index.jsp页面,将结果返回给host
6) Host把servlet response对象返回给engine
7) Engine 将servlet返回给connector
8) Connector返回给客户端

5、 多实例(一个主机运行多个tomcat)

[root@localhost ~]# cp -ra /usr/local/tomcat /usr/local/tomcat2
[root@localhost ~]# vim /usr/local/tomcat2/conf/server.xml
修改标红的地方
22
69 <Connector port=“8081” protocol=“HTTP/1.1”
70 connectionTimeout=“20000”
71 redirectPort=“8444” />
116
[root@localhost ~]# /usr/local/tomcat2/bin/startup.sh
在这里插入图片描述

6、 自定义目录
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
[root@localhost ~]# vim /data/project/index1.jsp
[root@localhost ~]# vim /data/project/index2.jsp
148 <Host name=“localhost” appBase=“webapps”
149 unpackWARs=“true” autoDeploy=“true”>
150
151
Path:指出访问的路径
docBase:指定存放的路径
Debug:指定debug的等级为0输出信息最少,9提供最多信息
Reloadable:为ture时当web.xml文件有改动的时候自动重新加载,不用重启服务
CorssContext:为ture时表示不同的context共享一个session(会话池)
开启tomcat目录遍历
[root@localhost ~]# vim /usr/local/tomcat/conf/web.xml
在这里插入图片描述
重启tomcat访问

7、 自定义监控页面
[root@localhost ~]# mkdir /bdqn/jk -p
[root@localhost ~]# vim /bdqn/jk/index.jsp
添加: 在这里插入图片描述
<%
Runtime rtm = Runtime.getRuntime();
long mm = rtm.maxMemory()/1024/1024;
long tm = rtm.totalMemory()/1024/1024;
long fm = rtm.freeMemory()/1024/1024;

out.println(“JVM memory detail info :
”);
out.println(“Max memory:”+mm+“MB”+"
");
out.println(“Total memory: “+tm+“MB”+”
”);
out.println(“Free memory: “+fm+“MB”+”
”);
out.println(“Available memmory can be used is :”+(mm+fm-tm)+“MB”+"
");
%>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
在这里插入图片描述
重启测试
在这里插入图片描述
8、远程监控
Tomcat开启JMX远程调试功能
[root@localhost ~]# vim /usr/local/tomcat/bin/catalina.sh
在这里插入图片描述
CATALINA_OPTS=" $CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"

Prot:连接的端口号一定要是系统没有使用的
Ssl:关闭ssl安全传输
Authenticate:开启用户认证
配置用户认证
[root@localhost ~]# cd /usr/local/jdk1.8.0_211/jre/lib/management/
[root@localhost management]# cp jmxremote.password.template jmxremote.password
[root@localhost management]# vim jmxremote.password
在最后一行添加
在这里插入图片描述
[root@localhost management]# vim jmxremote.access
修改配置为zhangsna
在这里插入图片描述
[root@localhost management]# chmod 600 jmxremote.password jmxremote.access
重启tomcat
[root@localhost ~]# jconsole

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值