tomcat源码分析(4)—>servlet深入分析(部分关键类的描述)

几个重要类的介绍
下面将对几个重要的类进行详细介绍:
servlet.java
该类定义了servlet的一些公共的方法,这些方法是约定俗成的,会被web容器自动调用:当web容器根据请求url中获取到请求的servlet的映射名称之后,会根据映射名称找到真正的servlet类的全限定名,然后调用classloader根据该全限定名加载该servlet实例,并调用servlet的service方法处理该请求。
从上面的过程我们可以知道一个servlet处理请求的过程,也就是servlet从被加载,然后处理请求、然后销毁的过程(当然为了提高性能,如果一个servlet是线程安全的,那么实例创建好之后,就会一直缓存在web容器中,如果servlet不是线程安全的,那么该servlet在处理完请求之后就会被销毁),具体该servlet怎么样处理一个请求,不同的应用又不同的处理,servlet只是面向对象编程中对servlet公共行为的一个抽象。
从阅读源码和源码中注解可知,该类定义了servlet生命周期的一些行为函数接口,包括init、service、destroy、getServletConfig、getServletInfo这几个接口方法:
init:当servlet被容器创建的时候被调用(容器调用)。
service:主要是处理请求(容器调用)
destroy:在servlet被移除容器的时候调用(容器调用)
getServletConfig:获取servlet的配置信息
getServletInfo:获取servlet的基本信息,如作者、版本、版权等信息。
通过对servlet抽象类的介绍可以了解servlet的一个生命周期,并对servlet具体是什么建立起一个基本的概念。

ServletConfig.java
定义了获取servlet获取配置信息的接口。
ServletContext.java
定义了servlet获取container信息的接口,由于servlet是由container加载的,所以如果servlet想要获取到container的信息的话,可以通过实现该接口即可。
Filter.java
请求过滤器,该接口和servlet.java接口的定义有一些类似,也是定义了filter的生命周期和具体的过滤的方法接口等,这些方法都会被web容器自动调用。
filter具体有什么用呢?从对源码文件的文档注释可以看出,filter目前被用于实现的功能有:
Authentication Filters
Logging and Auditing Filters
Image conversion Filters
Data compression Filters
Encryption Filters
Tokenizing Filters
Filters that trigger resource access event
XSL/T filters
Mime-type chain Filter

filter会在请求到达web容器的时候,容器会自动调用filter对请求进行预处理,如果不能通过预处理,那么filter会直接调用reponse返回给客户端想要的错误。

其余的就是一些web容器的接口事件,想要的事件监听器回掉接口,具体的可以通过查看源码或者是通过api doc文档了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值