`
chinese.darren
  • 浏览: 98858 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat处理请求的详细流程

阅读更多
tomcat处理一个请求的详细流程:

protocolHandler负责生成endpoint和Http11ConnectionHandler
endpoint的acceptor线程负责处理连接请求,收到连接请求后交给worker线程处理,work线程调用Http11ConnectionHandler,Http11ConnectionHandler维护一个Http11Processor池,
在构造Http11Processor时将生成org.apache.coyote.Request和org.apache.coyote.Response对象。
Http11Processor使用InternalInputBuffer类来解析http协议,并将解析后的数据(请求头,分割行等)封装到org.apache.coyote.Request和org.apache.coyote.Response对象中,
之后将此两对象传给CoyoteAdapter.service(request, response)在该方法内部实现了org.apache.coyote.Request-->org.apache.catalina.connector.Request;
org.apache.coyote.Response-->org.apache.catalina.connector.Response的转换,接下来请求进入pipeline,pipeline中value的执行(调用value的invoke方法)顺序如下:
StandardEngineValve-->StandardHostValve-->StandardContextValve-->StandardWrapperValve-->ApplicationFilterChain.doFilter-->Servlet(HttpServlet).service
(由StandardWrapper创建的单实例——多线程共用),invoke方法的参数即为org.apache.catalina.connector.Request/Response。
如果是jsp则继续-->JspServletWrapper.service-->Compiler(如果没有被编译的话)-->装载具体编译后的servlet class file-->交给具体servlet的service方法-->通过out.write写入
html页面,事实上这个out是response.getWriter,所以也就将结果写入了response。

新建session:
Manager manager = context.getManager();
Session session = manager.createSession(null);
如何从服务器上下文查询数据:
Context context = server.getGlobalNamingContext();
UserDatabase database = (UserDatabase) context.lookup("UserDatabase");
分享到:
评论

相关推荐

    tomcat处理一个http请求的详细过程

    tomcat中server配置文件的结构,以及处理一个http请求的全过程

    S19-再看tomcat架构与请求处理流程1

    2. servlet容器 1. EndPoint组件:用于处理连接请求,也就是接收客户端发来的请求 2. Processor组件:用于应用层处理http请求,封

    我的tomcat7源码手撕过程

    Tomcat初始化流程分析,Tomcat启动流程分析 Tomcat处理一次请求过程分析 servlet初始化流程

    apache-tomcat-8.5.50-src.zip

    Tomcat启动流程分析 组件的生命周期管理 用Lifecycle管理启动、停止、关闭 Lifecycle接口预览 几个核心方法 Server中的init方法示例 为啥StandardServer没有init方法 LifecycleBase中的init与...

    tomcat work machion

    该文档大体的介绍了tomcat的工作原理。最主要的是阐述tomcat处理请求及回应请求的业务流程。

    关于tomcat的一些自己介绍

    1. TOMCAT的组件介绍及处理请求的流程 2. tomcat管理 3. 提一下tomcat安全和java安全机制 4. java的类加载机制 5. tomcat的类加载机制 6. tomcat搭建集群环境

    初识SpringMVC以及springmvc基本应用入门案例彩色PPT版本.pptx

    定义处理请求的功能类(UserServlet) 设置请求映射(配置映射关系) 使用SpringMVC技术开发web程序流程 创建web工程(Maven结构) 设置tomcat服务器,加载web工程(tomcat插件) 导入坐标(SpringMVC+Servlet) ...

    tomcat和apache mod_jk.so

    mod_jk模块的典型工作流程是这样的:一个HTTP请求过来,mod_jk模块根据其URI选 择合适的worker来进行处理。如果是lb_worker(负载均衡的worker),就再根据各种条 件选择后台合适的ajp_worker(处理AJP协议的worker...

    0325_SpringMVC.html

    * 4)、来看请求地址和@RequestMapping标注的哪个匹配,来找到到底使用那个类的哪个方法来处理 * 5)、前端控制器找到了目标处理器类和目标方法,直接利用返回执行目标方法; * 6)、方法执行完成以后会有一个...

    最简化tomcat设计,socket,web服务器

    3,截取请求的url进行处理,判断是请求的静态页面还是servlet(自己编写的一个接口) 4,如果访问的是sevlet,则使用类加载器,根据configServlet.xml中配置的参数,查找对应的class,载入 5,最后执行方法. 6,可扩展...

    分析Tomcat的工作原理

    SpringBoot 就像一条巨蟒,慢慢缠绕着我们,使我们麻痹。不得不承认,使用了 SpringBoot 确实提高了工作...但是,清楚 Tomcat 的工作原理和处理请求流程和分析 Spring 框架源码一样的重要。至少面试官特别喜欢问这些底

    tomcat-sr:Tomcat启动脚本,配置文件,源码剖析

    requestProcess.pdf-Tomcat请求处理流程序列图(2014.10.28-2014.10.29) 架构/-Tomcat服务器的架构结构和设计(2014.10.29-2014.10.29) server.xml-Tomcat容器配置文件(2014.10.29-) config /-Tomcat配置引用...

    jsp + servlet + javaben实现springmvc

    用户通过视图层发送请求到服务器,在服务器中请求被Controller接受,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller 3.2 源码 源码一 jsp+servlet+javaBean实现MVC 源码二 Struts+Hibernate...

    基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统+优秀本科毕业设计+源码+数据库+详细参考资料

    企业网盘系统的使用者分为企业普通员工和企业管理员,所以进行的基本处理流程是不一样的。企业普通员工进入本系统前台主界面后看到的是首页数据大盘,系统右上角有用户的头像和系统公告通知。在首页顶部的位置有个...

    基于springboot+vue实现的的成人教育教务系统(源码+论文)

    在后台的数据的处理和数据的访问方面有着自己特定的逻辑处理和数据访问的模块,在前台接收到相关的请求时,第一时间响应到数据处理和数据访问模块之中,通过数据的调用和数据的处理,把最终的结果成功的反馈到成人...

    struts2开发文档

    1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做 ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框 架的集成很有帮助...

    Springboot2.4.12启动过程方法总结.xmind

    由于我们日常工作中都是在现有框架下...3.指出了微服务是如何实现提供外部服务的能力-通过创建Tomcat容器,绑定并监听服务端口,不断拉取请求并结合DispatchServlet的映射关系找到真正提供服务的方法,处理请求并返回。

    java项目之成人教育教务系统(springboot前后端完整源码+LW+说明文档).zip

    在后台的数据的处理和数据的访问方面有着自己特定的逻辑处理和数据访问的模块,在前台接收到相关的请求时,第一时间响应到数据处理和数据访问模块之中,通过数据的调用和数据的处理,把最终的结果成功的反馈到成人...

    java毕业设计之成人教育教务系统(springboot+mysql+html完整源码+LW+说明文档).zip

    在后台的数据的处理和数据的访问方面有着自己特定的逻辑处理和数据访问的模块,在前台接收到相关的请求时,第一时间响应到数据处理和数据访问模块之中,通过数据的调用和数据的处理,把最终的结果成功的反馈到成人...

Global site tag (gtag.js) - Google Analytics