《Servlet、JSP和Spring MVC初学指南》——1.2 Servlet-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

《Servlet、JSP和Spring MVC初学指南》——1.2 Servlet

简介: getServletConfig,这个方法会返回由Servlet容器传给init方法的ServletConfig。但是,为了让getServletConfig返回一个非null值,必须将传给init方法的ServletConfig赋给一个类级变量。

本节书摘来自异步社区《Servlet、JSP和Spring MVC初学指南》一书中的第1章,第1.2节,作者:【加】Budi Kurniawan(克尼亚万) , 【美】Paul Deck著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 Servlet

Servlet接口中定义了以下5个方法:

void init(ServletConfig config) throws ServletException

void service(ServletRequest request, ServletResponse response)
        throws ServletException, java.io.IOException

void destroy()

java.lang.String getServletInfo()

ServletConfig getServletConfig()

注意,编写Java方法签名的惯例是,对于与包含该方法的类型不处于同一个包中的类型,要使用全类名。正因为如此,在Service方法javax.servlet.ServletException的签名中(与Servlet位于同一个包中)是没有包信息的,而java.io.Exception则是编写完整的名称。

init、Service和destroy是生命周期方法。Servlet容器根据以下规则调用这3个方法:

init,当该Servlet第一次被请求时,Servlet容器会调用这个方法。这个方法在后续请求中不会再被调用。我们可以利用这个方法执行相应初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig。一般来说,你会将ServletConfig赋给一个类级变量,因此这个对象可以通过Servlet类的其他点来使用。
Service,每当请求Servlet时,Servlet容器就会调用这个方法。编写代码时,是假设Servlet要在这里被请求。第一次请求Servlet时,Servlet容器调用init方法和Service方法。后续的请求将只调用Service方法。
destroy,当要销毁Servlet时,Servlet容器就会调用这个方法。当要卸载应用程序,或者当要关闭Servlet容器时,就会发生这种情况。一般会在这个方法中编写清除代码。
Servlet中的另外两个方法是非生命周期方法,即getServletInfo和getServletConfig:

getServletInfo,这个方法会返回Servlet的描述。你可以返回有用或为null的任意字符串。
getServletConfig,这个方法会返回由Servlet容器传给init方法的ServletConfig。但是,为了让getServletConfig返回一个非null值,必须将传给init方法的ServletConfig赋给一个类级变量。ServletConfig将在本章的1.6节中讲解。
注意线程安全性。Servlet实例会被一个应用程序中的所有用户共享,因此不建议使用类级变量,除非它们是只读的,或者是java.util.concurrent.atomic包的成员。

下一节“编写基础的Servlet应用程序”将介绍如何编写Servlet实现。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: