读书人

Servlet Source Analysis (三)

发布时间: 2012-08-28 12:37:01 作者: rapoo

Servlet Source Analysis (3)
3.GenericServlet
3.1上一节说到,GenericServlet实现了ServletConfig接口。ServletConfig是容器启动的配置类。可以获取到配置在web.xml文件中的一些信息。由容器进行实例化。
看一下ServletConfig里面的方法。


getInitParameter(String); 通过制定的名字获取启动的参数
getInitParameterNames(); 获取所有的启动参数,返回值是Enumeration类型
getServletContext(); 获取ServletConfig实例
getServletName(); Servlet的名字

假如在web.xml文件中如下配置.

public void init(ServletConfig config) throws ServletException {this.config = config;this.init(); } public void init() throws ServletException { }

假如我们想在服务器启动的时候,添加自己的一些东西,比如配置数据源。如果不写在配置文件中,那么我们可以选择写在init()方法里。
如果我们覆写第一个有参方法时,需要在子类中显示调用super.init(config)方法,否则服务器在启动的时候会报NullPointerException异常,因为此时的ServletConfig为空。所以,通常我们会选择覆写无参的init()方法。这里,个人感觉,不知Various当初的设计用意何在,有参的init()方法私有化,也许会更好一些。

读书人网 >软件架构设计

热点推荐