tomcat(一)
一、java技术体系
1、java体系结构
- Java编程语言
- Java类文件:java类文件为java编译后的文件
- JavaAPI:java类文件库
- JavaVM(JVM)
- class loader:编译和类库文件加载器
- 执行引擎
2、JVM执行引擎的结构
- 方法区
- 堆:jvm管理区域中内存中最大的一部分,也是GC管理的主要区域,主流的算法都基于分代收集方式进行,新生代和老年代,线程共享
- Java栈:线程私有,存放线程自己的局部变量信息
- PC寄存器:线程独占的内存空间。
- 本地方法栈
3、java程序编译运行的条件
- .java的文件编译成为.class的类文件
- 类文件需要符合jdk虚拟机运行标准
- 编译的类文件和java本身提供的类库文件都会统一送到jvm上运行
- jvm加载类文件后会使用本身用c语言编写的执行引擎将java运行在服务器环境
3、运行jsp的web容器
jsp技术将java代码嵌入html文件中,建立了一种动态网页的编写标准,它的技术基础是serverlet技术,当用户请求一个jsp文件时,jsp会讲代码转换成serverlet(即标准的java代码),java代码再交由低层的jdk执行。商用的容器最常见的有websphere,weblogic。
tomcat
一、tomcat简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat 实际上运行JSP页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器.
二、tomcat核心组件
1、tomcat服务器的架构示意图
2、组件
- service:一个server中至少包含一个service,用于提供具体服务,而service包含了核心的两个组件,Connector(可以有多个)和Container(只能有一个)。
- Connector:用于处理连接相关的事情,并提供Socket与Request和Response相关的转化(接收请求并解析;将运行结果构成响应报文)一个Connector不能服务于多个Container。
- Container:Container用于封装和管理Servlet,以及具体处理Request请求
- Engine:用于管理多个站点
- host:虚拟主机
- Context:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及下面的web.xml文件
- Wrapper:每一Wrapper封装着一个Servlet,来运行java代码
Context和Host的区别是Context表示一个应用,我们的Tomcat中默认的配置下webapps下的每一个文件夹目录都是一个Context,其中ROOT目录中存放着主应用,其他目录存放着子应用,而整个webapps就是一个Host站点
我们访问应用Context的时候,如果是ROOT下的则直接使用域名就可以访问,例如:www.ledouit.com,如果是Host(webapps)下的其他应用,则可以使用www.ledouit.com/docs 进行访问当然默认指定的根应用(ROOT)是可以进行设定的,只不过Host站点下默认的主营用是ROOT目录下的。