Tomcat介绍1.Web服务器介绍Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术Web服务器通常产生一个html响应以便浏览器浏览2.常见Web服务器Web服务器根据对JavaEE的支持程度分为JavaEE服务器以及Web容器JavaEE服务器
- 包括WebSphere、WebLogic、JBoss、Geronimo等
- 特点是重量级、对JavaEE技术规范支持比较全面、功能强大
- 包括Tomcat、Jetty等
- 仅对Servlet、JSP进行支持,并不支持所有JavaEE技术规范
- 特点是轻量级、速度快、开源免费
%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 ServerTomcat环境变量设置好之后,Tomcat Home和Tomcat base directory会被自动填好,点击确认这样就在IDEA中配置好了Tomcatserver.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请求需要向监听端口发送的命令字符串
- name:service的名字
- port:服务器监听客户端请求的端口号
- minProcessors:服务器启动时创建用于处理请求的线程数
- maxProcessors:可以创建用于处理请求的最大线程数
- enableLookups:
- true:可调用request.getRemoteHost()进行DNS查询,得到远程客户端的实际主机名
- false:不进行DNS查询,直接返回IP地址
- redirectPort:服务器正在处理HTTP请求时收到一个SSL传输请求后重定向的端口号
- acceptCount:所有可使用的处理请求线程数都被使用时,可以放到处理队列中的请求数,请求超过这个数则不予处理
- connectionTimeout:连接超时时间,以毫秒为单位
- defaultHost:指定缺省的请求处理主机名,至少与一个Host元素的name属性一致
- docBase:应用程序路径或War包路径
- path:Web应用程序URL的前缀
- reloadable:设置为true,则可以自动装载新应用程序而无需重启
- name:主机名
- appBase:存放应用程序的目录
- unpackWARS
- true:Tomcat自动将War包解压
- false:直接从War包中运行应用程序
- className:指定Realm使用的类名,该类须实现org.apache.catalina.Realm接口
- className:指定Valve使用的类名,该类须实现org.apache.catalina.AccessLogValve接口
<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-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获取响应并返回给客户端
- 通常一个Servlet类对应一个Wrapper
- 如有多个Servlet就定义多个Wrapper
- 如有多个Wrapper就要定义一个更高级的Container,比如Context
- Context定义在父容器Host中
- Host不是必需的
- 运行War包必须要Host,因为War包里面的web.xml文件解析需要Host
- 如有多个Host就要定义一个顶层容器Engine
- Engine没有父容器,一个Engine代表一个完整的Servlet引擎