在讨论Servlet的API和声明周期之前,首先我们得明白什么是servlet? 那么什么是servlet呢?
1.什么是servlet?
Servlet是运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API动态的向客户端输出内容。
Servlet有自己一套规范,该规范包含了三个技术要点:
①servlet技术(本博文主要讨论的内容);
②filter技术(过滤器)
③listener技术(监听器);
在明白了什么是servlet之后,接下来我们要讨论一下web浏览器访问服务器(该处以Tomcat服务器为例)资源时的过程
2.浏览器访问Tomcat服务器过程
1)首先在网页上输入一个URL:http://localhost:8080/WEB/testServlet;
2)浏览器发送请求后,接下来Tomcat服务器会收到请求,然后Tomcat引擎会针对URL进行以下操作:
①解析请求资源的地址;
②创建servlet对象;
③创建代表请求的request对象和代表响应的去response对象;
※:浏览器每次访问servlet的service(ServletRequest req, ServletResponse res)方法时都会创建一对新的request和response对象。
3)完成上面步骤后服务器会返回给浏览器所请求的资源。
知道了浏览器访问服务器的基本过程之后,接下来将讨论servlet的生命周期
3.servlet的API和生命周期
servlet接口主要的三个方法:
1)init(ServletConfig config):
ServletConfig : 代表的是该servlet对象的配置信息,我们可以通过它获得配置文件的信息;
执行时间:servlet对象创建的时候执行;servlet对象创建时间默认是第一次访问Servlet时创建该对象,也就是说init方法执行的时间为第一次访问servlet的时候;
2)service(ServletRequestrequest,ServletResponse response)
执行时间:通过第2部分的分析我们可以知道,service的执行时间为每次请求时;
ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息;
ServletResponse :代表响应 认为要封装的是响应的信息
3)destroy()
执行时间:servlet销毁的时候执行
通过上面的分析可以总结为: 默认第一次访问servlet时创建servlet对象,当服务器关闭时销毁servlet对象,其中每次访问服务器都会调用service方法。