Servlet介绍
Servlet也是javaweb的三大组件(Servlet,Filter,Listener)之一,属于动态资源的一种。
Servlet的主要任务就是处理客户端发送的请求,现在我们来具体分析一下Servlet的主要任务:
l 获取请求数据
l 处理请求
l 响应请求
针对Servlet技术的开发,SUN公司提供了一系列的接口和类,其中最重要的是javax.servlet.Servlet接口。下面我们来了解三个和Servlet技术相关的接口和类:
l javax.servlet.Servlet接口;
l javax.servlet.GenericServlet类;
l javax.servlet.http.HttpServlet类;
自定义一个Servlet类,有以下三种书写方式:
l 实现javax.servlet.Servlet 接口
l 继承javax.servlet.GenericServlet类
l 继承javax.servlet.http.HttpServlet类
我们最常用到的方式是继承HttpServlet。
Servlet接口
Servlet中的方法大多数都是由服务器(常用的是Tomcat)自动调用,Servlet对象也是有服务器(常用的是Tomcat)来创建。
void init(ServletConfig config) | 初始化方法,当服务器创建了Servlet实例,就会立即调用该方法,完成初始化操作,该方法在Servlet的一生中也只被调用一次。 |
void destroy() | 该方法是销毁方法,在Servlet实例被销毁之前,Tomcat服务器调用该方法,在Servlet的一生中只调用一次。 |
void service(ServletRequest req,ServletResponse res) | 该方法是处理请求的方法,当服务器接受到客户端访问Servlet的请求时,就会调用该方法。服务器会创建一个表示客户端请求的ServletRequest对象和一个用于响应客户端的ServletResponse对象作为参数传递给service()方法。在service()方法中,可以通过ServletRequest对象获得客户端的相关请求信息,在对请求进行处理之后,可以调用ServletResponse对象设置响应信息。该方法在Servlet的一生中会被调用多次。 |
ServletConfig getServletConfig() | 该方法返回一个ServletConfig对象,通过这个对象可以获取到Servlet的相关配置信息。返回的这个对象是由服务器创建,通过init()方法传入到Servlet中,然后再传递给getServletConfig()方法。 |
String getServletInfo() | 返回一个字符串,其中包含了Servlet的相关信息,例如,作者、版本和版权等信息。 |
和Servlet的生命周期有关,分别是init()、destory()及service()方法,这些方法是由服务器调用。
生命周期可以理解为一个人从出生到死亡这一过程,Servlet的生命周期就是指从Servlet实例被创建,到Servlet实例被销毁这一过程。Servlet实例被创建之后,服务器会调用init()方法对Servlet进行初始化操作,客户端每次请求Servlet,服务器都会调用service()方法进行处理,在Servlet实例被销毁前,服务器会调用destroy方法。
Servlet的生命周期
生命周期方法:
l init(ServletConfigconfig):出生之后(只执行一次);
l service(ServletRequestrequest , ServletResponse response):每次请求都会调用;
l destroy( ):临死之前调用一次
特性:(1)Servlet只会被创建一次,所以是单例的,一个Servlet类只有一个Servlet对象,当然一个web应用中可以存在多个Servlet类;
(2)Servlet是线程不安全的,所以效率比较高。