1. tomcat是什么

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
除tomcat外,web应用服务器还有jetty,weblogic,websphere,undertow等。
注意:有时我们会将web叫做web服务器,实际上tomcat更准确的叫法是应用服务器。 web服务器主要是指专门来处理html,css,图片等静态资源的服务器,必要apache服务器。

2. 目录结构及作用

tomcat目录结构的截图(tomcat8.5.42):

bin
bin目录主要要来存放tomcat命令的目录,里面主要有两种类型的文件,一种是以.bat为扩展名的文件,一类是以.sh为扩展名的文件。其中.bat的文件是在windows平台的命令,.sh的文件是在linux平台的文件。
该目录中主要的文件有一下几个:
1) setclasspath 用于设置Java环境变量,如JAVA_HOME,JRE_HOME等
2) catalina 该文件也是用来配置环境的,如CATALINA_HOME,及tomcat的安装路径,我们可以在此目录设置Java的启动参数,如最大最小堆空间大小:
例如:
JAVA_OPTS=“$JAVA_OPTS -Xms256m -Xmx512m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=512m”
3) startup 用来给启动tomcat,当双击startup后,tomcat启动,读取catalina脚本配置启动环境,catalina又会调用setclasspath脚本,用来设置jdk需要的环境变量,如果系统没有定义JAVA_HOME环境变量,则在会报错退出。
4) shutdomn 用于停止tomcat服务

conf
该目录主要用来存放tomcat的配置文件, 重要的配置文件如下:
1)server.xml 用于配置端口号,虚拟主机,默认加载项目,请求编码等等,是tomcat中最常使用的配置文件
2)web.xml 为所有的部署在该tomcat下的web应用通用的配置,与每个web应用的web.xml配合使用。例如:
DefaultServlet,就算系统中没有配置任何的servlet,tomcat依然可以处理html,js,css等静态资源的请求,就是这个servelt起的作用;
JspServlet,当请求jsp页面时,则会用到这个servlet。
session过期时间配置session-timeout参数,也是在这个web.xml中配置的。
3)catalina.policy 这个是tomcat安全相关的配置文件,主要使用安全策略文件可以在tomcat启动是附上 -security
4) catalina.properties 安全配置,类加载设置,不需扫描的类,字符缓存等配置
5)context.xml 所有在tomcat中发布的应用都会使用的公用配置,例如:发布的web应用的描述文件的位置及名称,及session持久化配置等。session持久化示例请参考第三部分的示例
6)tomcat-users.xml
tomcat的角色(授权用户)配置文件,用于访问tomcat管理应用程序时的安全性设置,用server.xml中引用的默认的用户数据库域(UserDatabase Realm)使用它,所有的凭据都是默认被注释的
7)tomcat-users.xsd 定义了 tomcat-users.xml 所使用到的标签,即tomcat-user.xml 的结构定义文件

lib
所有的部署在tomcat中的web应用公用的jar包

logs
用于保存tomcat运行时的日志数据,

catalina.{yyyy-MM-dd}.log tomcat自己的运行日志
localhost.{yyyy-MM-dd}.log 应用初始化日志,包含tomcat的启动和暂停时的运行日志,没有catalina.{yyyy-MM-dd}.log记录的全,只包含一部分
localhost_access_log.{yyyy-MM-dd}.txt tomcat访问日志,包括请求时间,资源,返回的状态码
manager.{yyyy-MM-dd}.log 是tomcat管理控制台应用的专有日志
在Linux系统中,tomcat将日志记入catalina.out文件,可以使用 tail -f catalina.out 进行跟踪。
temp
存放tomcat在运行期间产生的临时文件,可以清空该目录的文件,但不能删除该目录,可能会引发不可预知的错误。

webapps
tomcat默认的项目部署目录,在默认情况下,如果要发布应用可以直接将应用的war包放入该目录即可完成发布,也可以直接发布未压缩的目录,但要求该目录需要符合web应用规范。

doc tomcat文档
examples tomcat自带的web应用示例
host-manager tomcat主机管理应用程序
manager tomcat的管理应用程序
ROOT 如果项目部署为ROOT,则在地址栏直接输入:http://ip:port/ 就可以访问,即不用输入应用名
work
用来部署应用中由jsp文件生成的java文件和编译之后的class文件,可以删除,删除后可以迫使tomcat重新生成jsp对用的java和class文件。

其他文件

  • LICENSE tomcat开源许可文件
  • NOTICE tomcat说明文件
  • RELEASE-NOTES 版本说明文件
  • README.md 即 README.txt tomcat帮助文件
  1. session持久化示例
    1)主要配置文件
    session持久化主要是在context.xml文件中进行配置的,context.xml文件可以出现在两个位置上,其作用域不同,配置方式一致:

tomcat安装目录\conf 目录中的context.xml配置文件,该文件中的配置对部署在该tomcat中的所用应用都有效
所开发的web应用的META-INFO目录中,创建一个context.xml配置文件,放在此处的配置,只对所属的web应用有效

<?xml version="1.0" encoding="UTF-8"?>
<Context><!-- maxIdleSwap:  自上次访问session以来,session数据应被保存到stroe中的时间间隔,该值应该大于等于maxIdleBackup参数的值maxIdleBackup: 自上次访问会话后,会话有资格保留到会话存储区之前的时间间隔(秒),-1为默认值,表示禁用saveOnRestart: 重启是是否持久化sessionmaxActiveSession:session总数大于该参数设置的值时,会将超出部分空闲的session换出--><Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true" maxIdleBackup="1" maxIdleSwap="1"><Store className="org.apache.catalina.session.FileStore" directory="d:/aaa" /></Manager></Context>

2) 示例:

  • 创建web工程
  • 加入tomcat依赖
  • 创建一个Customer实体bean,之后会将该bean放入session,注意:因为session需要进行持久化,所以该bean需要实现两个接口,分别为:HttpSessionActivationListener,Serializable
  • 创建一个servlet,在用户访问该servlet时,将Customer存入session,已测试持久化
    具体代码:
    Customer:
public class Customer implements HttpSessionActivationListener, Serializable {private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic void sessionDidActivate(HttpSessionEvent event) {String name = ((Customer)event.getSession().getAttribute("cust")).getName();System.out.println("钝化之后 = " + name);}@Overridepublic void sessionWillPassivate(HttpSessionEvent event) {String name = ((Customer)event.getSession().getAttribute("cust")).getName();System.out.println("钝化之前 = " + name);}@Overridepublic String toString() {return "Custom [hljs-string" style="color: #d69d85; line-height: 160%; box-sizing: content-box;">", name=" + name + "]";}
}

servlet:

@WebServlet(“/login”)
public class LoginServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);
}@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Object cust_obj = req.getSession().getAttribute("cust");       if(Objects.isNull(cust_obj)) {Customer cust = new Customer();cust.setId("cust_001");cust.setName("张三");System.out.println("将客户信息放入session");req.getSession().setAttribute("cust", cust);} else {System.out.println("客户信息已经放入session");String name = ((Customer)req.getSession().getAttribute("cust")).getName();System.out.println("从session获取客户信息,name = " + name);}}

}
将web应用部署,运行之后访问servlet,查看指定的目录中是否有session的持久化数据,重新启动web,看session是否会从持久化数据中恢复。

tomcat基本介绍相关推荐

  1. Tomcat 服务器介绍和使用

    ** Tomcat 服务器介绍和使用: ** 服务器的概念和作用: 问题: 学习了 java 编程之后,java 代码的一个很重要的作用就是进行数据的 处理,但是目前来说我们运行编写的代码,只有一次性 ...

  2. tomcat端口介绍以及配置启用https

    一.tomcat 默认端口 <Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口 <Connect ...

  3. Tomcat是什么。Tomcat入门介绍

    (本人小白,有些地方也是参考查询理解而来,如有错误,欢迎各位大神指正) 1.什么是web应用服务器?应用服务器其实也是一个应用程序.tomcat服务器也是web应用服务器之一. 2.tomcat服务器 ...

  4. tomcat目录介绍

    这里以apache-tomcat-8.5.69为例,目录结构如下: 一共有bin,conf,lib,logs,temp,webapps,work, 一共7个文件夹,下面来对它们分别进行介绍: (1)b ...

  5. Mac启动tomcat的介绍

    下载安装到官网上找一下资源就好,windows电脑可以直接双击startup来运行,而本篇博客介绍mac端如何启动tomcat 找到tomcat安装路径 打开访达,下载,找到名为apache-tomc ...

  6. Tomcat详细介绍和使用总结

    文章目录 Tomcat 介绍 Tomcat作为Servlet容器的基本功能 Tomcat的组成结构 Tomcat的工作模式 Tomcat 版本 Tomcat 安装和配置 安装 配置 启动与关闭 Tom ...

  7. Tomcat目录介绍以及运行时寻找class的顺序

    来自:http://blog.csdn.net/lihai211/article/details/6651977 Tomcat下的文件目录  /bin:存放启动和关闭tomcat的脚本文件:  /co ...

  8. tomcat服务器介绍之二 、session服务器实现方法

    上次讲到了session会话的绑定,通过nginx和apache(3种方式)实现:session会话的复制,通过DeltaManager和apache(mod_jk)实现:这次讲解基于msm实现ses ...

  9. Tomcat简单介绍

    1.目录结构 在conf文件夹中修改了配置之后一定要重启Tomcat 转载于:https://www.cnblogs.com/YeHuan/p/10835164.html

  10. Tomcat整体介绍

    来源 本文整理自 <Tomcat内核设计剖析>.<Tomcat结构解析> Tomcat 整体架构 ​ 如上图所示:包含了Tomcat内部的主要组件,每个组件之间的层次包含关系很 ...

最新文章

  1. vue获取input的属性_vuejs 中如何优雅的获取 Input 值
  2. 小端字节序和大端字节序
  3. 学python入门需要什么基础?
  4. ssas报表项目数据集_Analysis Services(SSAS)多维设计技巧–数据源视图和多维数据集
  5. Silverlight3 加载其他xap
  6. 启动工程Ehcache报错
  7. dmx512 java_什么书通过软件层讲解DMX512协议
  8. 大话数据结构学习笔记
  9. linux war 权限,Linux中mv重命名作用及打包war压缩文件及分配权限
  10. VMware下linux ubuntu 虚拟机复制粘贴-宿主机
  11. 测试工具Monitor入门
  12. GIF 格式图片的存储和压缩 Node.js实现
  13. 网站建设-网站设计怎么样做的更好?
  14. 盘点那些年BAT字节跳动等互联网公司的程序员、工程师一夜暴富的都市传说
  15. 企信下载的文件在哪里_苹果文件管理在哪里
  16. vc6.0中的dsp,dsw,ncb,opt,clw,plg,aps等文件的简单说明
  17. 拯救脂肪肝第一步!以飞桨3D医疗影像分割方案MedicalSeg自主诊断脂肪肝
  18. Linux系统安装过程详解
  19. PostgreSQL快速统计表行数
  20. 互联网摸鱼日报(2023-01-26)

热门文章

  1. 《ZeroC Ice 权威指南》笔记
  2. 辞狗迎猪,共赢美好未来!
  3. Wallpaper壁纸提取得到tex文件,tex文件转图像,tex文件转png,tex文件提取壁纸,Wallpaper壁纸提取无法得到图像文件,RePKG-GUI提取得到tex文件而不是图像的解决方法
  4. sort arithmatic
  5. 人脸识别-Java实现刷脸登录
  6. day34-MySQL介绍及安装
  7. 隐私安全计算-不经意传输的原理与应用
  8. 在Linux VSCode中编写调试C++解决ipch文件过大问题
  9. 模式分类中的特征融合方法
  10. 单片机中无符号数运算出现的问题