一、Servlet简介
Servlet
是sun公司
提供的一门用于开发动态web资源的技术。
Sun公司在其API
中提供了一个servlet接口
,用户若想开发一个动态web资源(即开发一个Java程序
向浏览器输出数据)
需要完成以下2个步骤:
1、编写一个Java类,实现servlet接口。
2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了
servlet接口
的 java程序,称之为Servlet
二、Servlet的运行过程
Servlet程序
是由 WEB服务器调用,web服务器收到客户端的Servlet访问请求
后:
①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象
。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。
③调用 Servlet实例对象 的init()
方法。
④创建一个用于封装HTTP 请求 消息
的HttpServletRequest对象
和 一个代表HTTP响应消息
的HttpServletResponse对象
,然后调用Servlet的service()
方法
将请求和响应对象作为参数传递进去。
⑤WEB应用程序 被 停止 或 重新启动之前,Servlet
引擎将卸载Servlet
,并在卸载之前调用Servlet的destroy()
方法。
小结 : 也就是说, 外部配置的服务器 (如 tomcat
) , 接收到请求 某一个 Servlet
后 ,先去(用自带封装好的 api
)查找 对应 Servlet
, 如果找到就按照 它的 创建方法init()
执行,没有的话,就创建一个只包含封装好的请求对象
和返回对象
,并调用 其中service()
,作为返回.
图解:
三 .Servlet 实现类
SUN公司
定义了 两个默认实现类,分别为:GenericServlet
、HttpServlet
。
-
HttpServlet:
-
能够处理HTTP请求的
servlet
,它在原有Servlet接口
上添加了一些与 HTTP协议处理方法,它比Servlet接口
的功能更为强大。
因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去 实现Servlet接口。
使用
HttpServlet
在实现Servlet接口
时,覆写了service()
,该方法体内的代码会 自动判断用户的请求方式
当请求为GET请求
,则调用HttpServlet
的doGet()
当请求为Post请求
,则调用doPost()
。
因此,开发人员在编写Servlet
时,通常只需要覆写doGet()
或doPost()
,而不要去覆写service()
。