第一章节:一个简单的WEB服务器
一,总括
介绍了HTTP协议和java.net.Socket与java.net.ServerSocket这两个类,接着介绍了一个简单的WEB服务器。
二,分述
1,HTTP请求与响应的三个组成部分
2,Socket类用于发送或接收字节流(信息),使用的方法有getOutputStream()和getInputStream();
ServerSocket类则会侦听本地机器接收到的连接请求,接着调用accept()方法产生一个Socket实例来与客户进行通信。
3,一个简单的WEB服务器指的是HttpServer.在这个类里主要做了这些事:使用ServerSocket侦听请求,产生Socket实例,
接着利用socket里的输入流填充request对象,而request则会调parse()对请求进行解析;同时利用socket里的输出流填
充response对象,response则对外作出响应。最后关闭socket对象。
三,代码对应
org.apache.catalina.core.StandardServer
***************************************************************************************
第二章节:一个简单的servlet容器
一,总括
不过是在前一章节的基础上增加了对Servlet接口的介绍和对不同请求类型进行分别处理
二,分述(与第一章节相同的略去)
1,Servlet接口里的方法:init(),service()和destroy()方法,它们关系到servlet的生命周期。
2,若一个请求是对静态资源的请求,则在HttpServer1类创建一个StaticResourceProcessor实例来进行处理;
若对应的是servlet类,则创建一个ServletProcessor1实例来进行处理。
3,对ServletProcessor1类的解释:假如一个请求对应的是一个servlet,则要先创建一个类载入器,然后载入
请求的servlet,最后该servlet再调service()方法。在调service()方法的时候使用了门面模式。
****************************************************************************************
第三章节:连接器
一,总括
据说是用了一种更好的方法来产生request与response对象
二,分述
1,Tomcat对错误信息的处理借助了StringManage类,每个包下都存在一个properties文件用来存放
错误(或异常)信息,若出现错误(或异常)时,会通过使用单例模式产生的StringManage类去
对应的properties文件下寻找相应的信息,这样做的好处有两个:一是不用在代码中与特定的异
常信息耦合,二是不必为要查找异常信息的对象创建许多StringManage类消耗资源。
2.我看了一下前一章节,发现“用了一种更好的方法来产生request与response对象”指的是这一章
使用了线程,并将线程的产生(socket与HttpProcessor对象的产生)和request与response对象
的创建分到了两个方法里
3,创建HttpRequest对象,在这里又分为了对请求行、请求头、Cookie、的解析以及对参数的获取。
这里有个疑问:后面的几个实现都是为了填充request对象,那它们在代码中是怎样衔接的,特别是后面的两个?
4,HttpResponse类暂时没有加入新的东西,略去。
******************************************************************************************
一,总括
介绍了HTTP协议和java.net.Socket与java.net.ServerSocket这两个类,接着介绍了一个简单的WEB服务器。
二,分述
1,HTTP请求与响应的三个组成部分
2,Socket类用于发送或接收字节流(信息),使用的方法有getOutputStream()和getInputStream();
ServerSocket类则会侦听本地机器接收到的连接请求,接着调用accept()方法产生一个Socket实例来与客户进行通信。
3,一个简单的WEB服务器指的是HttpServer.在这个类里主要做了这些事:使用ServerSocket侦听请求,产生Socket实例,
接着利用socket里的输入流填充request对象,而request则会调parse()对请求进行解析;同时利用socket里的输出流填
充response对象,response则对外作出响应。最后关闭socket对象。
三,代码对应
org.apache.catalina.core.StandardServer
***************************************************************************************
第二章节:一个简单的servlet容器
一,总括
不过是在前一章节的基础上增加了对Servlet接口的介绍和对不同请求类型进行分别处理
二,分述(与第一章节相同的略去)
1,Servlet接口里的方法:init(),service()和destroy()方法,它们关系到servlet的生命周期。
2,若一个请求是对静态资源的请求,则在HttpServer1类创建一个StaticResourceProcessor实例来进行处理;
若对应的是servlet类,则创建一个ServletProcessor1实例来进行处理。
3,对ServletProcessor1类的解释:假如一个请求对应的是一个servlet,则要先创建一个类载入器,然后载入
请求的servlet,最后该servlet再调service()方法。在调service()方法的时候使用了门面模式。
****************************************************************************************
第三章节:连接器
一,总括
据说是用了一种更好的方法来产生request与response对象
二,分述
1,Tomcat对错误信息的处理借助了StringManage类,每个包下都存在一个properties文件用来存放
错误(或异常)信息,若出现错误(或异常)时,会通过使用单例模式产生的StringManage类去
对应的properties文件下寻找相应的信息,这样做的好处有两个:一是不用在代码中与特定的异
常信息耦合,二是不必为要查找异常信息的对象创建许多StringManage类消耗资源。
2.我看了一下前一章节,发现“用了一种更好的方法来产生request与response对象”指的是这一章
使用了线程,并将线程的产生(socket与HttpProcessor对象的产生)和request与response对象
的创建分到了两个方法里
3,创建HttpRequest对象,在这里又分为了对请求行、请求头、Cookie、的解析以及对参数的获取。
这里有个疑问:后面的几个实现都是为了填充request对象,那它们在代码中是怎样衔接的,特别是后面的两个?
4,HttpResponse类暂时没有加入新的东西,略去。
******************************************************************************************