精华内容
下载资源
问答
  • Tomcat 执行流程

    2020-05-30 19:59:40
    之前也没有研究过tomcat,只知道是服务器,能处理数据。以下为tomcat的体系结构 tomcat架构图 一般在web里,tomcat扮演两个角色。 web容器:web容器所能做的就是接受用户对静态资源的请求并进行恢复。比如...

    之前也没有研究过tomcat,只知道是服务器,能处理数据。以下为tomcat的体系结构

    其中Container-容器组件

    用于封装和管理 Servlet ,以及具体处理Request请,在Connector内部包含了4个子容器:

    Engine,实现类为 org.apache.catalina.core.StandardEngine
    Host,实现类为 org.apache.catalina.core.StandardHost
    Context,实现类为 org.apache.catalina.core.StandardContext
    Wrapper,实现类为 org.apache.catalina.core.StandardWrapper

    这四个字容器实际上是自上向下的包含关系

    Engine:最顶层容器组件,其下可以包含多个 Host。
    Host:一个 Host 代表一个虚拟主机,其下可以包含多个 Context。
    Context:一个 Context 代表一个 Web 应用,其下可以包含多个 Wrapper。
    Wrapper:一个 Wrapper 代表一个 Servlet。

    Tomcat 的web目录,对应关系实际是这样的:Webapps 对应的就是 Host 组件,example 对应的就是 Context 组件,Wrapper 就是容器内的 Servlet了。

    tomcat架构图

    一般在web里,tomcat扮演两个角色。


    web容器:web容器所能做的就是接受用户对静态资源的请求并进行恢复。比如apache,但是apache也能处理php 和perl这样的动态资源的原因是因为apache的配置文件里可以做配置。类似于通过加载插件的方式提供对perl和php等动态资源请求的能力。

    tomcat在web容器的基础上增加了对动态资源处理的能里,也就是所谓的servlet容器,就需要我们配置在web.xml文件里。

    tomcat在启动时会去读取web.xml文件。但是tomcat对servlet的加载是属于懒加载,也就是说启动时并没有将web.xml中所有的servet都加载到内存中,而是当前请求用到那个servlet才会去加载哪一个。
     

    servlet容器:servlet是单例模式 整个生命周期中 同一个servlet对象只存在一个。其实servlet虽然是老技术 但是后面很多的新产品本质上都是在其基础上再开发和封装的。我们一开始学习web的时候,就是要自己手动编写servlet。

    大致思路如下:

    只要客户端一访问服务器,就开始创建servlet对象,通过调用init()方法对其初始化,只创建一次,以后客户端访问就直接从内存里拿这个servlet对象,在这个期间会执行service(httpservletrequest req ,httpservletresponse res)方法,然后就可以doget和dopost传参了。最后服务器通过 res这个对象向客户端回送数据(一般先得到OutputStream os=res.getOutputStream()对象,在os.write(...)写数据,回送给客户端)。关于servlet对象的销毁,会执行一个destroy()方法,一般是在关闭web应用或关闭服务器的时候会调用这个destroy()方法。

    有关filter

    可以复用的代码,拦截HTTP请求、响应、处理、转换,一般用于XSS拦截器、SQL拦截器

    javax.Servlet.Filter中实现init(),doFilter(),destroy()

    Tomcat Server处理一个http请求的过程

     

    假设来自客户的请求为:

    http://localhost:8080/test/index.jsp

    1.用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;

    2.Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应;

    3.Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;

    4.Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);

    5.path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;

    6.构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;

    7.Context把执行完之后的HttpServletResponse对象返回给Host;

    8.Host把HttpServletResponse对象返回给Engine;

    9.Engine把HttpServletResponse对象返回Connector;

    10.Connector把HttpServletResponse对象返回给客户Browser。
     

    流程图如下所示:

     

    参考链接:Tomcat原理以及处理http请求过程

    展开全文
  • 一个请求的执行流程举例如下。 url:http://localhost:8888/test/index.jsp,get请求。 浏览器发送http协议格式的请求数据包。数据包经过网络到达指定ip服务器。 tomcat的Connector监听8888端口,将数据包发送给...

    tomcat是一个用java编写的服务器程序。一个请求的执行流程举例如下。

    url:http://localhost:8888/test/index.jsp,get请求。

    浏览器发送http协议格式的请求数据包。数据包经过网络到达指定ip服务器。
    tomcat的Connector监听8888端口,将数据包发送给Engine.
    Engine找到名称是localhost的Host,把数据包发送给它,找不到就发送给defaultHost。
    Host找到path是test的Context,翻docBase目录,找到jspservlet.java
    Host创建HttpServletRequest对象,HttpServletResponsed对象,调用doGet方法
    servlet doGet执行完毕后,HttpServletResponse对象返回到Host,逆回去,最后给Connector,它将数据转为字符串封装成响应数据包。

    实践:
    需求:在浏览器地址栏输入http://www.itbz.com:8888/itbz/face.jpg可访问到C;/Users/Pctrues的face.jpg
    在这里插入图片描述

    操作:

    在server.xml中的中追加如下代码


    然后打开Windoes的这个配置文件编辑,将127.0.0.1与www.itbz.com绑定
    在这里插入图片描述
    shuru :
    在这里插入图片描述
    打开tomcat
    在这里插入图片描述
    浏览器输入上面的url

    结果:
    在这里插入图片描述

    展开全文
  • Tomcat执行流程

    2018-10-17 20:57:07
    装载所有已经部署到tomcat下的项目中的web.xml    //1.监听端口  ServerSocket ss = new ServerSocket(8887);    //2.接收连接  Socket s = ss.accept();    //3.接收到连接,拿到一个Socket    //4.通过...

    //0.装载所有已经部署到tomcat下的项目中的web.xml

      
      //1.监听端口
      ServerSocket ss = new ServerSocket(8887);
      
      //2.接收连接
      Socket s = ss.accept();
      
      //3.接收到连接,拿到一个Socket
      
      //4.通过socket拿到输入输出流
      
      //5.通过输入流,拿到请求内容,如下
      GET /www/abcd HTTP/1.1
      Accept: ...
      Accept-Language: zh-cn,en-us;q=0.5
      Accept-Encoding: gzip, deflate
      User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
      Host: localhost:8888
      Connection: Keep-Alive   
      
      
      
      //6.拿出请求中的url部份:/www/abcd
      
      
      //7.通过url,在web.xml中找到对应的Servlet类:
      com.lovo.MyServlet
      
      
      //8.通过反射创建Servlet对象
      Servlet servlet =  (Servlet)Class.forName("com.lovo.MyServlet").newInstance();
      
      
      //9.调用servlet.service(),这样,servlet就被调用了。

    展开全文
  • Tomcat执行流程

    2017-11-23 21:40:45
    Servlet的执行流程 Tomcat结构 描述:用户发起一个请求后,由服务器接收处理,接收web。Xml文件的配置信息,如果找不到相应的资源,则会出现的404错误! 如果servlet中的class类写错了,则会出现500错误!Servlet...

    这里写图片描述
    Servlet的执行流程
    Tomcat结构
    描述:用户发起一个请求后,由服务器接收处理,接收web。Xml文件的配置信息,如果找不到相应的资源,则会出现的404错误!
    如果servlet中的class类写错了,则会出现500错误!

    Servlet的生命周期
    0.容器给我们创建对象,但是容器不知道我们构造方法,它不知道你传几个参数,不知道你传什么类型的参数。无参构造方法,就是实例化的过程。
    1.容器能不能去根据有参的构造方法去创建对象?
    从技术上讲可以,但是servlet并没有提供,我们必须准守。
    **

    展开全文
  • 请求在Tomcat中的运行流程

    千次阅读 2018-03-04 20:31:13
    本来想写完Servlet在将笔记中的Tomcat整理出来,但是发现不说清除Tomcat,Servlet根本没法说清楚,所以,这一篇主要梳理请求在Tomcat中到底发生了什么。 就像我们知道的Tomcat被作为WEB容器使用,当tomcat接收到...
  • Tomcat启动流程

    2019-02-20 14:32:34
    Tomcat启动流程图  
  • springboot默认内置了tomcat容器,启动时可以直接启动内置tomcat来启动应用,本文详细介绍tomcat启动全流程及接受http请求全流程 源码分析 直接从源码开始分析,先从run方式开始分析,我们只关注主要流程,即只关心...
  • 启动顺序: 先启动连接器 再启动容器。 转载于:https://www.cnblogs.com/qihongfeiblog/p/11044671.html
  • web项目:第一个Servlet程序 Servlet的生命周期:init--service--destroy、执行流程:构造器--init方法--循环[ service方法 ]--destory方法(正常关闭Tomcat)、启动tomcat测试
  • JSP执行流程分析 Tomcat内存调优策略 Tomcat下载与配置 要想进行项目的开发,核心在于web容器,也就是说必须要有web容器后才能进行项目的运行。所有的JSP的程序代码只需要放到web容器之中就可以自动执行了。 ...
  • Tomcat启动流程解析

    千次阅读 2017-07-23 12:16:07
    众所周知,Tomcat是作为一款优秀的web服务容器被广泛应用。Tomcat是基于J2EE规范实现了经典的双亲委派模型的类加载体系。 二、相关概念 1、JAVA虚拟机主要的类加载器: a、Bootstrap Loader:加载lib目录下或者...
  • Tomcat的工作流程&原理

    2019-05-13 17:43:51
    )如下,是Tomcat中的web.xml配置,对于一个web应用,其默认自开启了JspServlet,还有ssi,cgi等Servlet <!-- The mapping for the default servlet --> <servlet-name>default <url-pattern>/ <!-- The ...
  • Tomcat工作流程(一)

    2019-09-29 11:56:10
    1,Tomcat是什么 Tomcat是一个应用服务器。可以运行按照J2EE中的Servlet规范编写好的Java程序,简单的说它是一个Web网站的 运行容器,把你写好的网站放进去就可以运行。 2,Tomcat的体系结构 <!-- 1...
  • Tomcat服务器执行流程

    2019-04-17 21:52:59
    来自 https://www.cnblogs.com/xdp-gacl/p/3744053.html
  • tomcat运行流程

    2011-12-27 16:48:11
    Tomcat运行流程tomcat运行流程 假设来自客户的请求为:http://localhost:8080/test/index.jsp 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得 Connector把该请求交给它所在...
  • 上一篇讲完了spring cloud,Spring boot,Tomcat容器之间关系以及执行顺序,这次再继续讲当一个请求到达服务时,执行流程: 首先我们得把Tomcat讲清楚: 综上所述,一个tomcat只包含一个Server,一个Server可以...
  • 在这里先抛出一些原生Tomcat作为web服务器的知识,Tomcat称之为web容器,也可以称之为servlet容器,原因如下: web容器:用来与我们的浏览器做交互,即与http请求做交互 servlet容器:与http请求做交互的时候,如何...
  • web项目运行中,tomcat的作用和运行流程tomcat具体是怎么接收请求和处理请求(调用servlet)的呢,长连接和短连接是什么
  • Tomcat运行过程和简单模拟

    千次阅读 2018-07-18 10:48:27
    什么是tomcat Tomcat是一个JSP/Servlet容器。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户下被普遍使用,是开发和调试JSP 程序的首选。负责处理客户...
  • tomcat执行原理

    2018-04-02 15:28:15
    1、当应用端请发送url的请求时,tomcat执行流程在web.xml文件中执行的顺序web.xml 的加载顺序是:ServletContext-&gt; context-param -&gt;listener -&gt; filter -&gt; servlet,而同个类型之间...
  • 1, tomcat 的结构主要由这几个类或接口组成  catalina,server,service,connector,container,Engine,Host,context  catalina主要负责tomcat的启动和关闭 server对应的就是tomcat(可以当做一个服务器吧) ...
  • 文章目录8.tomcat中spring启动流程分析流程跟踪 8.tomcat中spring启动流程分析 spring的在tomcat容器中的启动过程应该是: tomcat启动–BootStrap.start()–spring jar包里面的Catalina.start() startInternal()–...
  • Tomcat如何创建Servlet? A.先到缓存中寻找有没有这个对象 如果没有: 1、通过反射去创建相应的对象(执行构造方法)  2、tomcat会把对象存放到缓存中 ...Servlet的执行流程 一:从浏览器地址(请求)开始分析 1.
  • Springboot Web应用Tomcat启动流程概述

    千次阅读 2018-12-15 22:32:58
    流程分析基于 : springboot 2.1.1 Tomcat 9.0.13 缺省配置 应用启动过程中Tomcat的启动 SpringApplication#run() SpringApplication#refreshContext(context) 这里 context 是 ...
  • tomcat处理请求的流程

    2020-04-05 20:14:48
    tomcat处理请求的流程 第一步:从SocketChannel到NioSocketWrapper 首先分析Acceptor,在tomcat9之前,Acceptor类是属于NioEndpoint的内部类。 如下图所示: 下面的类为AbstractEndpoint 下面的类为NioEndpoint类 ...
  • Tomcat升级流程

    千次阅读 2020-02-26 15:59:57
    Tomcat漏洞升级测试流程 注:系统为Redhat7 一、 部署tomcat版本为8.0.36 (1) 检查是否安装yum rpm -qa | grep yum yum-cron-3.4.3-163.el7.noarch #显示该内容为已安装 (2) 检查是否安装Java rpm -qa | grep ...
  • SpringBoot集成Tomcat详解

    千次阅读 2019-09-25 17:59:03
    https://blog.csdn.net/qq_34560242/article/details/80394266 https://blog.csdn.net/qq_28289405/article/details/81279742 https://www.cnblogs.com/developerxiaofeng/p/9081689.html ...
  • Tomcat整体架构及其工作流程

    千次阅读 2018-10-31 16:43:12
    这两天看了一些关于tomcat的东西,在此做一个小的总计。 Tomcat架构 Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。一个Tomcat中...
  • Tomcattomcat运行流程

    2019-07-11 20:44:15
    Tomcat的架构 两大核心组件 ...一个请求的处理流程 httpConnector就是链接器 httpProcessor是具体的处理类 Container是容器(servlet) Tomcat启动步骤 Bootstrap -> catalina -> ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,435
精华内容 30,174
关键字:

tomcat执行流程

友情链接: bellman.rar