Tomcat跑程序的本质

       web容器就是Java web程序跑起来的一个运行环境,就像我们平时运行一个Java代码的时候要先为它创造好JDK环境。同样的道理,要想运行一个web项目也需要一个环境,我们平常大部分用的都是Tomcat服务器。Tomcat服务器就是一个web容器,它是一种单一的服务器,上面只能跑web项目,还有其他混合容器不仅可以运行web项目也可以跑其他项目,有兴趣的可以Google一下。

       以上的解释是通俗的说法。实际上Tomcat服务器就是管理servlet组件的容器,它通过调用自身的方法来实现servlet的运行,具体过程如下:

        1.当客户点击一个URL地址时,该URL指向的是一个servlet而不是一个静态页面。

        2.首先接收到请求的是容器而不是servlet,容器根据该请求判断请求所需要的是servlet,于是就创建httpservletrequest和httpservletresponse两个对象。

        3.容器再根据请求判断所需要的是哪一个servlet,然后在线程池中调派线程,并把第2步中创建的两个对象放入线程中。

        4.容器调用servlet的service()方法,service()方法会调用doGet()或者doPost()方法。

        5.doGet()方法生成动态页面,然后把页面填入response对象中,此时容器任然拥有response对象。

        6.线程结束,容器把response对象转换成http响应,传回客户端,并销毁httpservletrequest和httpservletresponse两个对象。

了解了Tomcat容器之后,有些人就会对servlet产生了疑问。它是什么?用来干什么的?它其实就是一个Java的接口,一种规范,它的作用很单一,因为大部分任务都是容器来完成的,它的主要功能在于交互式地浏览和修改数据,生成动态web内容,它只要实现自身的5个方法就好了。接下来简单介绍一下这5个方法,以后还会详细介绍servlet的:

        1.init(servletConfig config)或者不带参数(核心):对实例进行初始化,由方法2得到的参数作为对象,以便进行servlet的正确初始化。使用该方法可以在处理请求前做好准备,比如连接数据库等。整个周期该方法执行一次。

        2.getServletConfig():获得一个含有servlet配置信息的对象。服务器启动的时候,系统会自动把整个web.xml配置文件中的配置信息封装成一个对象,该对象实现了servletConfig接口。

        3.service()(核心)服务方法:在该方法被容器调用之前要确保init方法的正确,客户端每次发送一次请求该方法就执行一次,整个周期执行n次。

        4.getServletInfo():获得servlet的一个描述。

        5.destroy()(核心):服务器暂停或者程序运行结束,释放暂用的内存。整个周期执行一次。

你可能感兴趣的:(Tomcat跑程序的本质)