天天看点

WEB开发初阶——Tomcat

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 匹配规则

url_pattern 匹配顺序
1.全路径映射 /aaa/bbb.do 1. 精确路径匹配
2.路径映射   /aaa/* /* 2. 最长路径匹配
3.扩展映射   *。 3. 扩展匹配
4.默认映射   / 4. defaultServlet 处理静态页面的类

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

Apache Tomcat区别参考文章 http://developer.51cto.com/art/201007/210894.htm