Servlet学习笔记_Servlet

系统 1762 0

1. servlet体系结构

servelt我们可以理解为一个实现了可以接受请求并响应请求的java类。servlet类的体系结构如下图
Servlet学习笔记_Servlet

GenericServlet抽象类-----实现了Servlet接口和ServletConfig接口和Serializable接口

HttpServlet抽象类继-----承于GenericServlet抽象类

2.servlet生命周期

init()方法和destory()方法都只调用一次,service()方法每接受一个请求,都会调用一次service()方法。

2.1Servlet容器实例化某个Servlet对象

在web.xml里面可以配置一个标签,让某个servlet类在Servlet容器启动的时候就创建这个servlet类的一个对象。如果不配置servlet容器启动创建servlet对象,则当某个servlet接收到客户端的请求时,才创建这个servlet对象

2.2 某个Servlet对象初始化

Servlet实例化后,会调用servlet的init()方法,这个方法就是用来初始化的。你可以重写这个方法,根据自己的需求去初始化这个servlet实例。

如果你在web.xml为这个Servlet实例配置了初始化参数,如下

<servlet>

<servlet-name>LoginDispatcher</servlet-name>

<servlet-class>requestdispatcher.LoginDispatcher</servlet-class>

<init-param>

<param-name>name</param-name>

<param-value>zhangsan</param-value>

</init-param>

</servlet>

你可以调用ServletConfig接口的getInitParameter()方法去获得这些初始化参数。由上面类图我们可以知道GenericServlet抽象类实现了ServletConfig接口。

这里有两个异常要介绍:

ServletException:一般用来指明某个servlet初始化失败,例如找不到初始化参数

UnavailbleException:用于通知servlet容器该servlet实例不可用,例如当这个servlet在初始化的时候调用数据库连接失败,那么这个Servlet就不可用了,于是必须通知Servlet容器,告诉它这个Servlet对象不可用

2.3 Servlet处理请求

当客户端发送请求给某个servlet的时候,servlet会调用该servlet的service()方法去处理请求。在处理请求期间发生错误会抛出ServletException和UnavialbleException。

当UnavialbleException标志该servlet为永久不可用的servlet时,servlet容器就会调用该servlet的destory()方法销毁该servlet,并返回给客户端HTTP404错误(请求的资源不可用或不存在)。

当UnavialbleException标志该servlet为暂时不可用的servlet时,servlet容器将返回给客户端HTTP503错误(服务器忙,不能处理请求)

2.4 Servlet的销毁

当servlet容器要销毁某个servlet之前,servlet容器会调用该servlet的destory()方法,去释放一些资源,例如:数据库连接等等

3. servlet生命周期时序图

Servlet学习笔记_Servlet

Servlet学习笔记_Servlet


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论