博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己动手编写tomcat服务器(三)
阅读量:6323 次
发布时间:2019-06-22

本文共 1577 字,大约阅读时间需要 5 分钟。

hot3.png

Catalina有两个主要的模块:connector和container,connector接收http请求,发送给container进行处理。container必须创建HttpServletRequest和HttpServletResponse的实例,然后传递给被调用的servlet的service方法。在这篇文章的应用中,connector解析HTTP请求头,并允许servlet获取headers, cookies, parameter names/values。

本篇的应用由三个模块组成:connector, startup, 和core.

startup模块仅包含一个类:BootStrap,它是应用的入口

connector模块分为5个类别:

  • connector 和它的支持(supporting )类(HttpConnector 和HttpProcessor )

  • 代表HTTP 请求的类(HttpRequest )及 其支持类

  • 代表HTTP 响应的类(HttpResponse )及其支持类

  • 门面(Facade )类(HttpRequestFacade 和HttpResponseFacade )

  • Constant 类

core模块包含两个类: ServletProcessor and StaticResourceProcessor

在这章的应用中,监听HTTP请求的任务交给了HttpConnector类,创建http请求和响应的任务交给了HttpProcessor类。HttpRequest类代表一个请求,HttpRespons代表一个响应。HttpRequest必须实现javax.servlet.http.HttpServletRequest接口。一个HttpRequest对象将会被转换成(cast)HttpServletRequest的实例然后传递给被请求的servlet的service方法。因此,每个HttpRequest的实例必须拥有合适的成员,被分配给HttpRequest的值有:URI, query string, parameters, cookies and 其他的 headers

SocketInputStream类包含两个重要的方法:readRequestLine和readHeader。readRequestLine返回请求字符串的第一行,readHeader用来获取名值对。

本篇的应用包含如下的结构:

 Starting the Application

 The Connector
 Creating an HttpRequest Object
 Creating an HttpResponse Object
 Static resource processor and servlet processor
 Running the Application

Starting the Application

ex03.pyrmont.startup.Bootstrap类为起点类,源代码如下:

package ex03.pyrmont.startup;import ex03.pyrmont.connector.http.HttpConnector;public final class Bootstrap {  public static void main(String[] args) {    HttpConnector connector = new HttpConnector();    connector.start();  }}

未完,到原网站看吧,这里写不下了

转载于:https://my.oschina.net/yolinfeng/blog/468953

你可能感兴趣的文章
YY项目之帧动画(二)
查看>>
NetSuite云ERP正在取代SAP
查看>>
HashiCorp Consul + Kubernetes深度融合
查看>>
Linux-Ubuntu环境安装Nginx和配置二级域名跳转
查看>>
flink流计算随笔(5)
查看>>
释放百万IOPS性能!阿里云数据库下一代存储介质ESSD云盘来了!
查看>>
简单描述PHP发展历程
查看>>
c# 编程学习(五)
查看>>
Nginx服务器防止负载过高模块sysguard
查看>>
用SQL做数据分析_2
查看>>
怎样把PDF图片旋转90度
查看>>
DHCP介绍以及HCL配置DHCP
查看>>
阿里巴巴,果然开始拥有“预测未来“的能力了
查看>>
Redis配置文件详解
查看>>
【Exchange Server 2010 分角色部署】(三)分步安装角色
查看>>
PHP 框架
查看>>
我的友情链接
查看>>
安卓学习记录 帧布局显示目录
查看>>
我的友情链接
查看>>
oracle 11g下载
查看>>