vlambda博客
学习文章列表

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

1、web服务器概述

1.1、什么是服务器

   服务器:就是安装了服务器软件的计算机。

   服务器软件:接收用户请求、处理请求以及响应请求的软件。而web服务器,可以部署web项目,让用户通过浏览器来访问这些项目。

1.2、常见的web服务器

   webLogic:oracle公司的,大型的javaEE服务器,支持有所的javaEE规范,收费的。

   webSphere:IBM公司的,大型的javaEE服务器,支持有所的javaEE规范,收费的。

   JBOSS:JBOSS公司的,大型的javaEE服务器,支持有所的javaEE规范,收费的。

   Tomcat:Apache基金组织,中小型的javaEE服务器,支持部分javaEE规范,全面支持serlvet/jsp规范,开源的、免费的。

1.3、什么是javaWeb

    Internet上供外界访问的Web资源分为:

   静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。

   动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

   静态web资源开发技术:Html、css

   常用动态web资源开发技术:JSP+Servlet、ASP、PHP等,在Java中,动态web资源开发技术统称为Javaweb。

   在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范。Tomcat三大功能:

   1)web服务器(底层是Socket的一个程序);

   2)JSP容器

   3)servlet容器

2、Tomcat目录结构


目录/文件 说明
bin 启动和关闭tomcat的bat文件。startup.bat/shutdown.bat、startup.sh/shutdown.sh用于windows和linux下的启停脚本。
conf 配置文件:Catalina:用于存储针对每个虚拟机的Context配置context.xml:定义所有web应用均需加载的context配置,如果web应用指定了自己的context.xml,该文件将被覆盖catalina.properties:Tomcat的环境变量配置logging.properties:Tomcat的日志配置server.xml:服务器的核心配置,该文件用于配置和 server 相关的信息, 比如 tomcat启动端口后,配置Host, 配置Context 即web应用web.xml:该文件配置所有web应用(web应用就相当于是一个 web站点)描述文件,如servlet。tomcat-users.xml:该文件用户配置tomcat 的用户密码 和  权限。如:管理员权限配置<role rolename="manager"/><user username="admin" password="admin"  roles="manager"/>
lib 该目录放置运行tomcat 运行需要的jar包
logs 存放日志, 当我们需要去查看日志的时候,很有用!,当我们启动tomcat错误时候,可以查询信息.
webapps 该目录下,放置我们的web应用(web 站点), 比如:建立 web1 目录 下面放置我们的html 文件 jsp 文件..图片... 则 web1就被当做一个web应用管理起来(☞ 特别说明tomcat 6.0 以后支持 tomcat 5 版本 还有别的设置)
work 该目录用于存放jsp被访问后 生成的对应的 server文件 和.class文件


3、web应用组织结构和web.xml文件的作用

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

web.xml文件为web应用的配置文件,它必须放在web应用目录/WEB-INF目录下

4、配置Tomcat

4.1、配置JDK

   配置JDK运行环境JAVA_HOME变量配置。Tomcat会通过JAVA_HOME找到所需要的JDK。

   注:不同版本的Tomcat对JDK的依赖不同,可以在DOS窗口中使用命令运行。如果版本不匹配可能会出现各种问题甚至无法启动。我使用tomcat:apache-tomcat-9.0.41、JDK:1.8.0_181。

   例如:我的环境变量如果配置JDK1.6

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

   就会出现:Unsupported major.minor version 52.0,不受支持的主要版本52.0,也就是说JDK低版本不兼容高版本。    

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

   如果我不想修改我本地的JDK环境变量,我们可以修改Tomcat的配置,指定JDK版本:

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

4.2、在IDE中配置Tomcat服务器

   菜单Window下选择Preferences,找到Server,选择Runtime Environments。

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

配置完成后:

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

   然后在IDE中启动Tomcat即可。我的项目的工作目录是servlet,项目的部署目录我们可以在D:\servlet.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps目录下找到,如果访问不了http://localhost:8080/,可以将Tomcat目录下的ROOT替换掉这个。

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

4.3、直接在Tomcat安装目录中使用

   我们将D:\servlet.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps下的JspWeb项目直接拷贝到Tomcat的webapps目录下,然后启动(startup.bat):

   访问项目:

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

5、Tomcat整体架构分析

   Tomcat本质上就是一款servlet容器,Catalina(Servlet容器)是Tomcat的核心,其他模块都是为Catalina提供支撑的。比如:通过Coyote模块提供链接通信,Jasper 模块提供JSP引擎,Naming提供JDNI服务,Juli提供日志服务。

   注:JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

   Catalina负责管理Server,而Server代表整个Tomcat容器。Server下面有多个Services,每个服务都包含着多个连接器Connector(Coyote实现)和一个容器组件Container。在Tomcat启动的时候,就会创建一个Catalina的实例。

   我们也可以通过Tomcat的配置server.xml文件来窥测Tomcat的设计。当然有时间可以去研究下源码。

JavaWeb入门详解(第三篇)web服务器之Tomcat简介

JavaWeb入门详解(第三篇)web服务器之Tomcat简介