目录
一.介绍
二.Tomcat
1.Tomcat入门
三.Tomcat架构讲解
一.介绍 主要内容 JavaEE 简介 Servlet 简介 Tomcat 详解 Servlet 技术详解 学习目标 一、 JavaEE 简介 1 什么是 JavaEE JavaEE (Java Enterprise Edition ), Java 企业版,是一个用于企业级 web 开发平台。最早 由 Sun 公司定制并发布,后由 Oracle 负责维护。在 JavaEE 平台规范了在开发企业级 web 应 用中的技术标准。 在 JavaEE 平台共包含了 13 个技术规范(随着 JavaEE 版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC 、 JNDI 、 EJB 、 RMI 、 Servlet 、 JSP 、 XML 、 JMS 、 Java IDL 、 JPA 、 JTA 、 JavaMail 和 JAF 。 2 JavaEE 版本 二、 Servlet 简介 1 Web 开发历史回顾 1.1CGI 公共网关接口( Common Gateway Interface , CGI )是 Web 服务器运行时外部程序的规范。 1.2CGI 缺点
以进程方式运行,对每一个客户端的请求都要启动一个进程来运行程序,导致用户数目增加时,服务器端资源被大量占用。由于对操作系统和进程的不深刻理解,使得开发人员开发的 CGI 程序经常遇到莫名其妙的错误。 不同的 CGI 之间不能共享资源 1.3FastCGI FastCGI 是对 CGI 模式的一个改进,采用了 Pooling 技术,一定程度上改善了性能,但是由于仍然是基于进程运行的所以并没有从根本上解决问题。 2 Servlet 介绍 Servlet 是 Server Applet 的简称,称为服务端小程序,是 JavaEE 平台下的技术标准,基于 Java 语言编写的服务端程序。 Web 容器或应用服务器实现了 Servlet 标准所以 Servlet 需 要运行在 Web 容器或应用服务器中。 Servlet 主要功能在于能够在服务器中执行并生成数据。 2.1Servlet 技术特点 Servlet 使用单进程 多线程方式 运行。 2.2Servlet 在应用程序中的位置 三、 服务器 1 JavaEE 应用服务器(JavaEE Application Server ) 应用服务器是 Java EE 规范的具体实现 , 可以执行 / 驱动基于 JavaEE 平台开发的 web 项目。绝大部分的应用服务器都是付费产品。 常见的应用服务:
Weblogic(BEA Oracle 收费) Webshpere(IBM 收费) JBoss(RedHad 收费)
Resin(Caucho 收费) JRun(Macromedia 收费) Geronimo(Apache 免费) 2 Web 容器( Web Server ) 只实现了 JavaEE 平台下部分技术标准,如 Servlet ,Jsp , JNDI , JavaMail 。 Web 容器是开 源免费的。
Tomcat(Apache 开源免费) Jetty(Jetty 开源免费)
二.Tomcat 1.Tomcat入门
3.1Tomcat 下载与安装
3.1.1 下载 下载地址: http://tomcat.apache.org/ 主页左侧选择版本Download即可,版本后面 带有alpha的不要下载,因为这表明这是测试版,会有很多未知问题。 我用的版本是apache-tomcat-9.0.34 3.1.2 安装 Tomcat 是绿色软件,解压就可使用。 3.1.3 配置环境变量 Tomcat 是用 Java 语言开发的 Web 容器,所以在使用 Tomcat 时需要在操作系统中正确配置环境变量(是系统环境变量,而不是用户变量)。 JAVA_HOME : C:Program FilesJavajdk1.8.0_171 (你的jdk路径) PATH : %JAVA_HOME%bin; CLASS_PATH : %JAVA_HOME%lib; 3.2Tomcat 目录结构与介绍 3.2.1 bin bin 目录主要是用来存放 tomcat 的命令文件,主要有两大类,一类是以 .sh 结尾的(linux 命令),另一类是以 .bat 结尾的( windows 命令)。 3.2.2 conf conf 目录主要是用来存放 tomcat 的一些配置文件。 3.2.3 lib lib 目录主要用来存放 tomcat 运行需要加载的 jar 包。 3.2.4 logs logs 目录用来存放 tomcat 在运行过程中产生的日志文件。 3.2.5 temp temp 目录用户存放 tomcat 在运行过程中产生的临时文件。(清空不会对 tomcat 运行带来影响) 3.2.6 webapps webapps 目录用来存放应用程序,当 tomcat 启动时会去加载 webapps 目录下的应用程序。可以以文件夹、 war 包的形式发布应用。 3.2.7 work work 目录用来存放 tomcat 在运行时的编译后文件,例如 JSP 编译后的文件。 3.3Tomcat 启动与关闭 Tomcat 的启动与关闭需要执行 bin 目录中的命令脚本。 3.3.1 Tomcat 启动 运行 startup.bat 文件。 bug解决:Tomcat 启动闪黑屏
第一种方式 :
在配置系统环境变量中新建:
CATALINA_base,路径是自己tomcat的根路径地址
CATALINA_HOME路径同上
第二种方式:
检查JAVA_HOME里面的JDK地址是否与当前JDK位置一致
3.4.1.4 tomcat-users.xml 配置访问 Tomcat 的用户以及角色的配置文件。 3.4.2 解决控制台乱码 控制台产生乱码的原因是在 Tomcat 在输出日志中使用的是 UTF-8 编码,而我们中文的 Windows 操作系统使用的是 GBK 编码。由于编码格式不统一,所以出现了乱码。 解决方式: 修改 conf 目录中的 logging.properties 文件重新指定的编码方式。 java.util.logging.ConsoleHandler.encoding = GBK 3.4.3 修改 Tomcat 监听端口 Tomcat 默认监听端口为 8080 。可以通过修改 server.xml 文件来改变 Tomcat 的监听端口。
将里面的8080修改即可,然后重启Tomcat就生效了。
3.4.4 配置 Tomcat Manager 3.4.4.1 什么是 Tomcat Manager Tomcat Manager 是 Tomcat 自带的、用于对 Tomcat 自身以及部署在 Tomcat 上的应用进 行管理的 web 应用。默认情况下, Tomcat Manager 是处于禁用状态的。准确的说, Tomcat Manager 需要以用户角色进行登录并授权才能使用相应的功能,不过 Tomcat 并没有配置任 何默认的用户,因此我们需要先进行用户配置后才能使用 Tomcat Manager 。 红框处就是 Tomcat Manager ,需要下面设置用户权限后方可使用。 3.4.4.2 配置 Tomcat Manager 的访问用户 Tomcat Manager 中没有默认用户,我们需要在 conf/ tomcat-users.xml 文件配置。 Tomcat Manager 的用户配置需要配置两个部分:角色配置、用户名及密码配置。 3.4.4.2.1 Tomcat Manager 中的角色分类 manager-gui 角色(使用较多): 允许访问 HTML GUI 和状态页面 (即 URL 路径为/manager/html/*) manager-script 角色(使用较多): 允许访问文本界面和状态页面 ( 即 URL 路径为 /manager/text/*) manager-jmx 角色: 允许访问 JMX 代理和状态页面 ( 即 URL 路径为 /manager/jmxproxy/*) manager- status 角色: 仅允许访问状态页面 ( 即 URL 路径为 /manager/status/*) 3.4.4.2.2 配置用户及角色也可以配置多个用户角色,如下写就行
4 Tomcat 版本说明 5 Tomcat 工作原理 5.1Tomcat 作用 Tomcat 是一个能够处理请求并产生响应的应用程序。 Tomcat 实现了 JavaEE 平台下的一些技术规范,所以我们可以在 Tomcat 中运行我们所编写的 Servlet 、 JSP 。 5.2Tomcat 运行原理三.Tomcat架构讲解
6.1Tomcat 架构图
默认情况下Tomcat只支持HTTP协议
6.2Tomcat 组件 6.2.1 Server 组件 启动一个 server 实例(即一个 JVM ),即Tomcat实例,它监听在 8005 端口以接收 shutdown 命令。 Server 的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个 Server 实例,必 须配置它们使用不同的端口。7.2 创建页面 创建 index.html 页面 7.3 修改 server.xml 添加 Host 配置