how tomcat works chinese 学习系列第二章

阅读更多

哈哈,  看看tomcat里面到底是啥玩意......

在好奇动力的支撑下, 继续学习第二章, 动态url servlet请求处理

 

2个程序

 

1. 第一个程序类列表

Request

Response

HttpServer1

Contants

ServletProcesser

StaticResourceProcesser

 

 

 

Request          

             方法和第一章相同parse()  parseUri()   作用查看第一章

             新增: 实现ServletRequest接口和其中的方法, 作用Request类代表一个request对象并被传递给servlet的service方法.   

            

Response        

               新增: 实现ServletResponse接口和其中的方法, 作用同Request.

 

HttpServer1

                新增: 通过获取uri判断请求的资源.

 

Contants 

              将获取资源路径的,  static final  类型的资源提取放到公共类.

 

ServletProcesser 

                        这个类处理动态servlet请求,

 

StaticResourceProcesser  

                                   process方法有2个参数, request,response从httpserver1 传参过来,直接调用response中的响应方法.

 

 

PrimitiveServlet     

 (第一个程序和第二程序公共测试servlet类)

 这个就是sevlet测试类,  需要实现Servlet接口和其中的生命周期 init, destory, service方法

 

 

 

第二个程序类列表

Request

Response

Contants

HttpServer2                       

StaticSourceProceer

ServletProcesser 

ResponseFacade

RequestFacade

 

 

 

Request

Response

Contants

HttpServer2                       

StaticSourceProceer

以上内容相同 

  

ServletProcesser  

RequestFacade             

 新增这个类是为安全考虑, 在Request类中的函数不被外部访问,通过实现ServletRequest接口和Request类实现相同的接口,用构造函数传参,   用成员变量的私有属性来达到在调用提供服务的servlet的service方法时安全向下转换.

 

ResponseFacade  

  同上

 

 

 

摘:

servlet的service方法从servlet容器中接收一个javax.servlet.ServletRequest实例和一个javax.servlet.ServletResponse实例。这就是说对于每一个HTTP请求,servlet容器必须构造一个ServletRequest对象和一个ServletResponse对象并把它们传递给正在服务的servlet的service方法

 

 

 

你可能感兴趣的:(Tomcat,Servlet)