Tomcat介绍

1.Web服务器介绍Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术Web服务器通常产生一个html响应以便浏览器浏览2.常见Web服务器Web服务器根据对JavaEE的支持程度分为JavaEE服务器以及Web容器JavaEE服务器

  • 包括WebSphere、WebLogic、JBoss、Geronimo等
  • 特点是重量级、对JavaEE技术规范支持比较全面、功能强大

Web容器(Servlet/JSP容器)

  • 包括Tomcat、Jetty等
  • 仅对Servlet、JSP进行支持,并不支持所有JavaEE技术规范
  • 特点是轻量级、速度快、开源免费

3.Tomcat概述Tomcat是官方推荐的Servlet/JSP容器Servlet/JSP的最新规范都可以在Tomcat的新版本中得到实现4.Tomcat目录

webapps下有一个ROOT目录,无需在URL加上项目名即可访问其内的资源Tomcat的下载与安装

1.Tomcat的下载与安装在Tomcat官网https://tomcat.apache.org/根据自己的JDK的版本选择Tomcat并下载

直接解压安装2.Tomcat环境变量配置新建CATALINA_HOME环境变量,变量值为Tomcat的解压安装位置新建CATALINA_BASE环境变量,变量值默认与CATALINA_HOME一致,可选在Path环境变量中追加如下配置

%CATALINA_HOME%\bin和%CATALINA_HOME%\lib

在DOS命令行中输入startup并回车,启动Tomcat在浏览器中输入localhost:8080并回车,Tomcat安装成功则出现以下页面

关闭Tomcat窗体或直接ctrl+c即可终止Tomcat服务器3.IDEA中Tomcat的配置打开File->Settings->Build, Execution, Deployment->Application Servers,点击加号

选择Tomcat Server

Tomcat环境变量设置好之后,Tomcat Home和Tomcat base directory会被自动填好,点击确认

这样就在IDEA中配置好了Tomcat

server.xml配置文件

1.server.xml配置文件概述server.xml位于Tomcat安装目录下的conf目录下,是Tomcat的主配置文件server.xml提供Tomcat组件的初始配置server.xml说明了Tomcat的结构,使Tomcat通过实例化组件完成自身构建以及启动可以在Tomcat安装目录的webapps\docs\config下查看server.xml配置说明2.server.xml配置详解Server

  • port:监听关闭Tomcat请求的端口
  • shutdown:关闭Tomcat请求需要向监听端口发送的命令字符串

Service

  • name:service的名字

Connector(表示客户端和Service之间的连接,以HTTP/1.1Connector为例,HTTP/2、AJP有所不同)

  • port:服务器监听客户端请求的端口号
  • minProcessors:服务器启动时创建用于处理请求的线程数
  • maxProcessors:可以创建用于处理请求的最大线程数
  • enableLookups:
    • true:可调用request.getRemoteHost()进行DNS查询,得到远程客户端的实际主机名
    • false:不进行DNS查询,直接返回IP地址
    • redirectPort:服务器正在处理HTTP请求时收到一个SSL传输请求后重定向的端口号
    • acceptCount:所有可使用的处理请求线程数都被使用时,可以放到处理队列中的请求数,请求超过这个数则不予处理
    • connectionTimeout:连接超时时间,以毫秒为单位

Engine(表示Service中用于接收和处理来自Connector请求的处理机)

  • defaultHost:指定缺省的请求处理主机名,至少与一个Host元素的name属性一致

Context(表示一个Web应用程序)

  • docBase:应用程序路径或War包路径
  • path:Web应用程序URL的前缀
  • reloadable:设置为true,则可以自动装载新应用程序而无需重启

Host(表示一个虚拟主机)

  • name:主机名
  • appBase:存放应用程序的目录
  • unpackWARS
    • true:Tomcat自动将War包解压
    • false:直接从War包中运行应用程序

Realm(表示存放用户名、密码及role的数据库)

  • className:指定Realm使用的类名,该类须实现org.apache.catalina.Realm接口

Valve(表示记录应用程序的访问信息的日志)

  • className:指定Valve使用的类名,该类须实现org.apache.catalina.AccessLogValve接口

web.xml配置文件

1.web.xml配置文件概述web.xml包含了描述整个Web应用程序的信息可以在Tomcat安装目录的webapps\docs\appdev下找到web.xml.txt,查看详细配置说明2.web.xml配置文件部分配置设置欢迎页面,应用程序响应第一个可以找到的欢迎页面

<welcome-file-list>    <welcome-file>欢迎页面1welcome-file>    <welcome-file>欢迎页面2welcome-file>    <welcome-file>欢迎页面3welcome-file>    ...welcome-file-list>

设置报错页面

<error-page>    <error-code>HTTP响应状态码error-code>    <location>报错页面路径location>error-page><error-page>    <exception-type>异常类全类名exception-type>    <location>报错页面路径location>error-page>

设置Session过期时间,单位为分钟

<session-config>    <session-timeout>Session过期时间session-timeout>session-config>

Tomcat部署项目

1.静态部署方式一:webapps目录是Tomcat默认的应用目录,服务器启动时会加载这个目录下所有的应用可以将Web项目拷贝到webapps目录下进行部署方式二:War包是具有特殊格式的Jar包,是将一个Web项目中所有内容进行压缩得到可以通过DOS命令行或IDEA将项目打成War包然后将War包放到webapps目录下进行部署方式三:在server.xml配置文件Host元素后面配置应用程序的Context配置

<Context path="Web应用程序URL的前缀" docBase="应用程序路径或War包路径"/>

方式四:在Tomcat安装目录的conf下找到或新建Catalina目录在Catalina目录下找到或新建名称为Web项目所在服务器域名的目录,本地则为localhost新建一个xml文件,名称需要与Web应用程序URL的前缀一致该xml内容如下

<?xml version="1.0" encoding="UTF-8"?><Context path="Web应用程序URL的前缀" docBase="应用程序路径或War包路径"/>

5.动态部署(热部署)Tomcat提供了admin和manager两个管理程序admin用于管理和配置Tomcat服务器manager用于管理Tomcat服务器上的应用程序Tomcat中manager四种角色如下

  • manager-gui

    • allows access to the HTML GUI and the status pages
    • 允许访问html接口(即URL路径为/manager/html/*)
  • manager-script
    • allows access to the text interface and the status pages
    • 允许访问纯文本接口(即URL路径为/manager/text/*)
  • manager-jmx
    • allows access to the JMX proxy and the status pages
    • 允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
  • manager-status
    • allows access to the status pages only
    • 允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)

在Tomcat安装目录的conf目录tomcat-user.xml配置文件中添加角色和用户,方式如下

<tomcat-users>    <role rolename="角色1"/>    <role rolename="角色2"/>    ...    <user username="用户1" password="用户1密码" roles="角色1,角色2..."/>    <user username="用户2" password="用户2密码" roles="角色1,角色2..."/>    ...tomcat-users>

重启Tomcat后登录Tomcat管理控制台http://localhost:8080/,点击Manager App

在弹出框输入配置的用户名和密码,进入Tomcat应用程序管理者页面

通过填写Web项目信息,或者直接上传War包进行部署

Tomcat架构解析

1.Tomcat体系结构

2.ConnectorConnector是Tomcat的两大核心组件之一Connector最重要的功能就是接收请求并分配线程然后让Container进行请求处理Connector的设计核心理念是多线程的处理Tomcat有两个经典的Connector,一个侦听浏览器HTTP请求,一个侦听其它WebServer的请求Connector处理请求步骤

  • 在指定的端口上侦听并接收浏览器发来的TCP连接请求
  • 接收请求后创建用于交换数据的Request以及Response对象
  • 创建线程处理请求并将Request和Response对象传给Engine
  • 从Engine获取响应并返回给客户端

3.ContainerContainer是Tomcat的两大核心组件之一,一个Container可对应多个ConnectorContaiiner是容器的父类,由Engine、Host、Context、Wrapper四种容器组件构成

Wrapper

  • 通常一个Servlet类对应一个Wrapper
  • 如有多个Servlet就定义多个Wrapper

Context

  • 如有多个Wrapper就要定义一个更高级的Container,比如Context
  • Context定义在父容器Host中

Host

  • Host不是必需的
  • 运行War包必须要Host,因为War包里面的web.xml文件解析需要Host

Engine

  • 如有多个Host就要定义一个顶层容器Engine
  • Engine没有父容器,一个Engine代表一个完整的Servlet引擎

apache 重定向tomcat端口_Tomcat相关推荐

  1. apache集成tomcat,并根据域名进行分发 屏蔽端口显示

    注:这里仅考虑apache做跳转 1.首先保证 mod_jk.so 版本正确,根据apache和tomcat的版本去http://www.apache.org寻找合适的mod_jk. 下载后copy到 ...

  2. Apache服务器+tomcat配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装Apache服务器 1.1 Windows下安装Apache 打开Apache Server的官网,可以看到上面只提供 ...

  3. 使用Apache对Tomcat进行负载均衡

    翻译:疯狂的技术宅 原文标题:Load balancing tomcat with Apache 原文链接:http://programmergate.com/loa... 本文首发微信公众号:充实的 ...

  4. apache与tomcat连接

    安装httpd 2.2版本 #yum install httpd #cd /usr/lib64/httpd/modules/ #ls    --需要apache已经装载mod_proxy.mod_pr ...

  5. apache+jk+tomcat集群+session同步

    说明借前人之鉴写一篇关于tomcat集群及session同步的问题首先介绍tomcat集成及做集群的原因和必要性session同步的作用.然后包括各软件的安装配置. 原理tomcat 做个WEB服务器 ...

  6. apache整合tomcat部署集群

    近日,由于公司项目需要,所以学习了apache整合tomcat以及集群的一些知识. 所以做下笔记日后回顾可以用到. apache只有处理静态事物的能力, 而tomcat的强项就是处理动态的请求,所以a ...

  7. linux安装apache mysql tomcat

    1. 安装Apahce, PHP, MySQL以及php连接mysql库组件.  #yum -y install httpd php mysql mysql-server php-mysql 2. 安 ...

  8. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...

  9. Apache+php+tomcat+mysqlon linxu

    Apache+php+tomcat+mysqlon linxu 讲座内容 ·什么是tomcat ·apache与tomcat的连接方式 ·在Linux系统上来搭建JSP环境.PHP环境 ·在搭建好的J ...

最新文章

  1. 帝国cms75商城包含电脑端手机端h5微信小程序的界面功能演示
  2. NVIDIA之AI Course:Getting Started with AI on Jetson Nano—Class notes(一)
  3. python 把数据 json格式输出
  4. hdu 2111 Saving HDU (DP)
  5. vue --- 全局注册子组件,并导入全局的子组件
  6. apache 2.4 httpd.conf 详解_Linux Centos服务子系统详解
  7. mysql数据库txt备份linux_linux备份mysql数据库
  8. Scrapy-Item Pipeline(项目管道)
  9. Js 通过点击改变css样式
  10. 新浪微博API使用方法
  11. jquery的DOM节点操作(替换元素节点)
  12. git commit 参数详解 --amend
  13. github注册,使用方法
  14. android 缓存头像,android 实现类似微信缓存和即时更新好友头像
  15. 快速理解Raft之日志复制(肝了两千五百字)
  16. linux机械硬盘提速,4个机械硬盘优化设置技巧 让你的硬盘速度飞起来
  17. PTA:7-15 计算圆周率 (15分)
  18. 2013年07月26日
  19. 华师计算机基础在线作业秋,17秋华师《计算机基础》在线作业 (答案)
  20. Mac系统设置文件的默认打开方式

热门文章

  1. 才知道创建数据表的后面int(M)的m居然和存储大小没有关系
  2. 不能上传图片和编辑内容很慢,望改进
  3. AI大牛纷纷离职!2021大厂AI Lab现状盘点,网友:名存实亡
  4. 超神了!因为一次接口超时,我一路排查到了内核代码
  5. 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!...
  6. 银行背景下分库分表技术选型
  7. 面试官:你写的单例模式有空指针异常,请你用Volatile改一下。我愣了五分钟...
  8. 大厂面试官必问的Mysql锁机制
  9. 太赞了!副业月入3W的技术大佬的公众号,学起来!
  10. Linux 内核代码行数达到 2700 万行量级