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文件的作用
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
就会出现:Unsupported major.minor version 52.0,不受支持的主要版本52.0,也就是说JDK低版本不兼容高版本。
如果我不想修改我本地的JDK环境变量,我们可以修改Tomcat的配置,指定JDK版本:
4.2、在IDE中配置Tomcat服务器
菜单Window下选择Preferences,找到Server,选择Runtime Environments。
配置完成后:
然后在IDE中启动Tomcat即可。我的项目的工作目录是servlet,项目的部署目录我们可以在D:\servlet.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps目录下找到,如果访问不了http://localhost:8080/,可以将Tomcat目录下的ROOT替换掉这个。
4.3、直接在Tomcat安装目录中使用
我们将D:\servlet.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps下的JspWeb项目直接拷贝到Tomcat的webapps目录下,然后启动(startup.bat):
访问项目:
5、Tomcat整体架构分析
Tomcat本质上就是一款servlet容器,Catalina(Servlet容器)是Tomcat的核心,其他模块都是为Catalina提供支撑的。比如:通过Coyote模块提供链接通信,Jasper 模块提供JSP引擎,Naming提供JDNI服务,Juli提供日志服务。
注:JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
Catalina负责管理Server,而Server代表整个Tomcat容器。Server下面有多个Services,每个服务都包含着多个连接器Connector(Coyote实现)和一个容器组件Container。在Tomcat启动的时候,就会创建一个Catalina的实例。
我们也可以通过Tomcat的配置server.xml文件来窥测Tomcat的设计。当然有时间可以去研究下源码。