浅谈tomcat底层工作原理

核心功能

请求分发(接受请求信息,把它分配到各个servlet里面去)

运行流程

//启动tomcat
//首先扫描所有.calss文件,根据路径拿到类信息,把注解信息单独拿出来,根据注解把一个个servlet挑出来存到map结构里  ”文件名“:“对应路径”

Socket...       //进行轮询操作,拿到网络数据:字符串str
HttpServletRequest request = 字符串处理函数(str)
HttpServletResponse response = ....

DemoServlet ob = new DemoServlet();                                                                                                                                      
   
ob.doGet(request,response);                          
String url = request.getHeader("Request URL");
"LoginServlet":"com.qcby.LoginServlet" 
map.get(url);
//通过本地路径对目标servlet进行实例化:
"com.qcby.LoginServlet"  -->class-->newinstance    
//这就要用到反射了,因为访问的servlet具有不确定性
//所以使用反射可以动态生成各种类的实例
//生成实例之后,利用代理执行类中的doGet和doPost方法:
ss.invoke();
//执行完之后,将携带的数据发送给socket,由socket组装协议格式,组装完成之后向外界发送数据	
//servlet框架是其他框架的基础成分,在servlet的基础上添加自己的内容,在servlet框架的基础上加入由一个Luyouservlet跳转到自己写的部分

相关内容

  • 计算机靠网卡设备与外界交互 网卡把物理电信号转换为0 1信号,转换完毕后把数据交给端口

  • 一台电脑端口最多能开2的16次方,六万多个 不会出现端口不够用的情况 因为端口开的过多内存会首先撑不住,崩溃

  • 端口 :在逻辑上有六万多个 但在物理上是一块地方 电脑跟网络中的数据一定是通过端口交换 任意两个程序不能使用同一端口
    一个端口最多只能属于一个独立的程序(进程级别) 两个线程不能同时使用一个端口 但可以一个线程拿到数据与多个线程共享
    但进程不可以,进程无法实现数据共享

  • 程序监听(轮询:每隔一段时间去看一次)端口拿到数据 tomcat有接受请求(轮询 while循环 )

  • socket套结字(功能:listen监听端口 read接受数据 发送数据)与网卡直接交互 发出去时帮我们包装上网络协议的一些信息和返回数据的作用
    接受的时候帮我们去除网络协议信息 该线程始终执行(死循环)
    main方法启动的线程称为主线程,内含对其他方法的调用。

  • 多个网站在tomacat里面合成一个项目,实际上是一个线程,是调用关系 response里封装了socket写的方法
    利用反射(获取类信息,对类信息进行实例化),tomcat知道要调用那个servlet 反射还能拿到注解信息

  • 可以给类 方法 成员信息做注解,方便调用时确定调用的方法,成员信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值