深入剖析tomcat(一)

本文详细介绍了客户/服务器通信的过程,包括服务器端如何监听指定端口的请求,客户端如何发起请求,以及双方如何通过socket对象进行交互。同时,还介绍了ServerSocket类的作用及构造方法,并解释了Servlet容器的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户/服务器通信过程

  • 服务器端创建serverSocket对象,监听指定ip、指定端口的请求
  • 客户端创建socket对象(指定需要请求的服务器端的ip和端口),发出请求
  • 服务器端接收到客户端的请求,创建与之相对应的socket对象,链接建立。serverSocket继续监听其他请求
  • 客户端通过socket的getOutputStram方法发出请求
  • 服务器端通过socket的getInputStream方法接收并分析请求
  • 服务器端通过socket的getOutputStream方法发出响应
  • 客户端通过socket的getInputStream方法接收并分析请求
  • 链接断开

ServerSocket类

  • ServerSocket是一个服务器套接字,用以监听服务器的请求,当接收到服务器的请求时就会创建一个与之链接的Socket对象
  • 其中一个构造方法
    • public ServerSocket(int port, int backLog, InetAddress bindingAddress);
    • port参数:用以指定该serverSocket监听的端口
    • backLog参数:客户端发出的请求会进入请求队列中,backLog参数规定了请求队列的长度,超过该长度的请求将被拒绝
  • accept()方法
    • 从请求队列中读取一个请求,并创建与之对应的Socket对象。若要读取该请求的内容需要使用的socket对象的getInputStram()方法。若要对该请求做出响应,需要调用socket对象的getOutputStream()方法。
    • 若请求队列中没有请求,则该方法将一直处于等待状态。

Servlet容器

  • 当第一次调用某个servlet时,载入该servlet容易,并调用其init()方法,仅一次
  • 针对每个request请求,创建一个javax.servlet.ServletRequest实例和javax.servlet.ServletReponse实例
  • 当调用该servlet的service()方法时,将javax.servlet.ServletRequest实例和javax.servlet.ServletReponse实例作为参数传入
  • 当关闭该servlet时,调用servlet的destroy()方法,并卸载该servlet类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值