Tomcat是什么?
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache Web服务器混淆,Apache Web Server[Apache]是一个用C语言实现的HTTP web server;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
Apache Tomcat区别
Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。
如果想让服务器也能处理动态页面,那么就需要Tomcat。Tomcat能对JSP、Servlet进行解析
WEB服务器(Tomcat)会干哪些事情 (简单实现)
public class Initializer {
public static void main(String[] args) throws IOException {
while (true) {
try {
Socket socket = Listener.listen(Config.port); 1.监听端口
String context = Reader.read(socket); 2.读取请求
Request request = ContextParser.parse(context); 3.解析协议
Action action = Dispatcher.dispatch(request); 4.分发请求
Response response = action.execute(request); 5.处理请求
Writer.write(socket, response); 6.返回结果
Closer.close(socket);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
存在的问题:
1. 配置的加载 使用xml解决
2. web工程与web服务器分离 /不用再添加新的需求后,编译工程
静态页面 Tomcat下的defaultAction类处理
动态请求 target下面 编译好的.class文件(实现Action接口 做成jar包)
但是,这样之后服务器不知道有哪些action,所以通过xml来让服务器知道。读取url 跟 Action对应关系,放入到Map里面
3.Servlet Dispatch Servlet的url 匹配规则
Tomcat的目录结构
──project name
│ ├──conf //存放Tomcat服务器的各种全局配置文件
│ ├──server.xml //Tomcat主要配置文件 Tomcat组件的初始配置
│ ├──web.xml //在Tomcat中配置不同的关系环境
│ ├──logs //Tomcat执行时的日志文件
│ ├──catalina.out
│ ├──webapps //Tomcat的主要Web发布目录,默认情况下把Web应用放于此目录
│ ├──ROOT
│ ├──WEB-INF //web应用 info
│ ├──web.xml //存放Web应用的发布描述文件 web.xml
│ ├──classes //存放各种class文件,Servlet类文件也放于此目录下
│ ├──lib //存放所需的所有Jar文件 Web项目 目录结构
|──pom.xml
├──src
│ └──main //SRC MAIN maven约定的项目结构
│ ├──java //maven package命令 将工程打包成war包,webapp原样拷贝 java文件编译后放到classes文件夹下, lib 调用的jar包
│ ├──resources
│ └──webapp //工程的发布文件夹
│ └──WEB-INF
│ └──web.xml
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache Web服务器混淆,Apache Web Server[Apache]是一个用C语言实现的HTTP web server;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
Apache Tomcat区别
Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。
如果想让服务器也能处理动态页面,那么就需要Tomcat。Tomcat能对JSP、Servlet进行解析
WEB服务器(Tomcat)会干哪些事情 (简单实现)
public class Initializer {
public static void main(String[] args) throws IOException {
while (true) {
try {
Socket socket = Listener.listen(Config.port); 1.监听端口
String context = Reader.read(socket); 2.读取请求
Request request = ContextParser.parse(context); 3.解析协议
Action action = Dispatcher.dispatch(request); 4.分发请求
Response response = action.execute(request); 5.处理请求
Writer.write(socket, response); 6.返回结果
Closer.close(socket);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
存在的问题:
1. 配置的加载 使用xml解决
2. web工程与web服务器分离 /不用再添加新的需求后,编译工程
静态页面 Tomcat下的defaultAction类处理
动态请求 target下面 编译好的.class文件(实现Action接口 做成jar包)
但是,这样之后服务器不知道有哪些action,所以通过xml来让服务器知道。读取url 跟 Action对应关系,放入到Map里面
3.Servlet Dispatch Servlet的url 匹配规则
url_pattern | 匹配顺序 |
1.全路径映射 /aaa/bbb.do | 1. 精确路径匹配 |
2.路径映射 /aaa/* /* | 2. 最长路径匹配 |
3.扩展映射 *。 | 3. 扩展匹配 |
4.默认映射 / | 4. defaultServlet 处理静态页面的类 |
──project name
│ ├──conf //存放Tomcat服务器的各种全局配置文件
│ ├──server.xml //Tomcat主要配置文件 Tomcat组件的初始配置
│ ├──web.xml //在Tomcat中配置不同的关系环境
│ ├──logs //Tomcat执行时的日志文件
│ ├──catalina.out
│ ├──webapps //Tomcat的主要Web发布目录,默认情况下把Web应用放于此目录
│ ├──ROOT
│ ├──WEB-INF //web应用 info
│ ├──web.xml //存放Web应用的发布描述文件 web.xml
│ ├──classes //存放各种class文件,Servlet类文件也放于此目录下
│ ├──lib //存放所需的所有Jar文件 Web项目 目录结构
|──pom.xml
├──src
│ └──main //SRC MAIN maven约定的项目结构
│ ├──java //maven package命令 将工程打包成war包,webapp原样拷贝 java文件编译后放到classes文件夹下, lib 调用的jar包
│ ├──resources
│ └──webapp //工程的发布文件夹
│ └──WEB-INF
│ └──web.xml