一个较丰满的servlet web server,包含conector、Processor、bootstrap (2代码分析)

代码分析:

    类关系:

       BootStrap主程序负责服务器的启动,控制HttpConnector组件;

       HttpConnector类负责Http链接和线程管理,控制HttpProcessor组件;

       HttpProcessor类负责Http协议的解析和res/req的创建,同包下的其他类是为解析req解耦出来的相关类,为获取响应writer的相关类;request对象属性在本应用中的到              近乎完全的解析,response好像只可以用writer由程序员自行设置响应头?书上没做说明,自己看代码也无法从静态关系中么;StaticResourceProcessor              处理静态资源类没做的变化,ServletProcessor加载类也没做过大的演进作用依然是动态加载servlet组件。

    对象关系:

         HttpProcessor负责解析Http信息,如RequestLine,RequestHeader,而requestParameter留在程序员获取paramater时再隐式地执行parameter解析过程。

       程序中最令人怅惘的是response对象的属性,在交给servlet程序员之前,res是否有一些默认的或者服务器应该自动设置的Header信息?还是全部交由程序员赋          值?很抓狂,res代码也没看出一二三来,虽然在HttpProcessor中setHearder,但还是不能透彻了解作者的本意。

       

原文地址:https://www.cnblogs.com/10000miles/p/9224485.html

时间: 2024-10-09 12:05:25

一个较丰满的servlet web server,包含conector、Processor、bootstrap (2代码分析)的相关文章

一个网站的诞生07-- Tornado Web Server

用Spider抓取数据,然后再做各种处理,然后放到web页面供大家使用. 那么,就需要一个Web Server. 几乎每种语言都有一大堆Web Server开发框架,Python也不例外,比如这里http://www.zhihu.com/question/20706333.廖雪峰同学还有个python的教程http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014023080708

一个最简单的static web server

声明:资料来自Tomcat剖析一书,该程序是基于java socket的,socket和stream类作为概念背景,现在仅仅是使用其作为基础类,并不关注其本身,关注点在一个服务器的外部功能和体系结构! 代码目录 HttpServer package simpleserver; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; impor

启动erlang/OTP里面的Web服务器(application INETS启动过程代码分析)

上两篇分别用两种方式启动了inets中的httpd,其实本质一样的:下面简单分析一下过程,函数粒度的介绍. 1,下面是application inets的代码目录,虽然ftp.tftp.http_client.http_lib.http_server.inets_app在这目录中并列,其实inets_app扮演顶层控制角色: 只有inets_app是一个application,而其他都是module---application的一部分并且需要application启动和管理. [[email p

Nginx一个实现负载均衡的强大web server

<转>nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持): 〉另外一个功能就是作为反向代理服务器实现负载均衡 以下我们就来举例说明如何使用 nginx 实现负载均衡.因为nginx在处理并发方面的优势,现在这个应用非常常见.当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache

自己动手创建一个Web Server(非Socket实现)

目录 介绍 Web Server在Web架构系统中的作用 Web Server与Web网站程序的交互 HTTPListener与Socket两种方式的差异 附带Demo源码概述 Demo效果截图 总结 介绍 本篇文章主要介绍使用HTTPListener类型自己动手创建一个Web Server,创建的Web Server能够接收来自浏览器端的HTTP请求,并且能够传递给对应的Web站点进行处理,最后将处理结果(Html或者其他格式)返回给浏览器. 博主前面曾经介绍过使用Socket模拟Web Se

如何用socket构建一个简单的Web Server

背景 现代社会网络应用随处可见,不管我们是在浏览网页.发送电子邮件还是在线游戏都离不开网络应用程序,网络编程正在变得越来越重要 目标 了解web server的核心思想,然后自己构建一个tiny web server,它可以为我们提供简单的静态网页 最终效果 完整的事例代码可以查看这里 如何运行 python3 index.py 注意 我们假设你已经学习过Python的系统IO.网络编程.Http协议,如果对此不熟悉,可以点击这里的Python教程进行学习,可以点击这里的Http协议进行学习,事

使用Python创建一个简易的Web Server

Python 2.x中自带了SimpleHTTPServer模块,到Python3.x中,该模块被合并到了http.server模块中.使用该模块,可以快速创建一个简易的Web服务器. 我们在C:\Users\%USERNAME%\用户目录下,创建一个html目录,将html/jpg等网页文件拷贝到该目录下,启动一个cmd命令行窗口,进入html目录,执行如下命令即可创建一个简易的Web Server: python -m http.server 8888 图01-使用python创建一个简单的

python web server gateway interface (wsgi ) notes

前言: 注:如果需要得到支持批Python3.x以及包含了勘误表,附录,和说明的更新版规范,请查看PEP 3333 摘要: 这篇文档详细说明了一套在web服务器与Python web应用程序(web框架)之间的已提出的标准接口,从而方便web应用在各种web服务器之间的移植. 理论和目标 Python世界目前拥有各种各样的web应用框架,仅举几例比如 Zope, Quixote, Webware, SkunkWeb, PSO, and Twisted Web 等[1],对于新手来说面对如此多的选

[基础架构]PeopleSoft Web Server 重要文件说明

我们都知道PeopleSoft是由几个不同的服务组成的,他们在PeopleSoft体系结构中扮演着自己的角色.这些服务具有不同的文件结构并包含重要的可执行文件和配置文件. 以下是Peoplesoft体系结构中比较重要的服务: 文件服务: web服务: 应用服务: Tuxedo: Batch服务/Process scheduler: 数据库服务: 本文将讨论PeopleSoft Web server目录和配置文件. weblogic,webserver可以安装在windows或UNIX系统 web