`

重写init(ServletConfig)方法,调用super.init(ServletConfig)

    博客分类:
  • cms
 
阅读更多
public class InitBeanFactoryServlet extends HttpServlet {
	
	public static final String INIT_FACTORY_NAME = "_my_bean_factory";
	
	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		BeanFactory factory = null;
		String configLocation = config.getInitParameter("configLocation");
		if(configLocation == null){
			factory = new PropertiesBeanFactory();
		}else{
			factory = new PropertiesBeanFactory(configLocation);
		}
		System.out.println("初始化BeanFactory......");
		getServletContext().setAttribute(INIT_FACTORY_NAME, factory);
		
		//初始化BeanUtils的转换器
		ConvertUtils.register(new ChannelsSetConverter(), Set.class);
	}

}

 

当重写init(ServletConfig)方法的时候,记得调用super.init(ServletConfig)
调用super.init(ServletConfig)的目的,主要是由于在父类(GenericServlet)中
有一个ServletConfig实例变量,super.init(ServletConfig)就是给这个实例变量复制。

这样,再后续的getServletContext()操作,才可以拿到ServletContext对象:
GenericServlet的部分源代码如下所示:

 

public abstract class GenericServlet 
    implements Servlet, ServletConfig, java.io.Serializable
{

    private transient ServletConfig config;
    
    public void init(ServletConfig config) throws ServletException {
		this.config = config;
		this.init();
    }
    public void init() throws ServletException {
    }    
    public ServletConfig getServletConfig() {
		return config;
    }
    public ServletContext getServletContext() {
		return getServletConfig().getServletContext();
    }

 

分享到:
评论

相关推荐

    JSP开发Servlet重写init()方法实例详解

    写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题。要明了这一点,首先要知道Servlet的几个类和接口的联系: ServletConfig...

    JavaWeb新版教程Servlet-1vlet-ServletConfig类使用介绍.avi

    JavaWeb新版教程Servlet-1vlet-ServletConfig类使用介绍.avi

    ServletConfig与ServletContext.docx

    注意:每个servlet有一个ServletConfig,每个Web应用有一个ServletContext.要把初始化参数认为是部署时常量,可用在运行时得到这些初始化参数,但不能设置初始化参数,根本没有setInitParameter().如果修改XML来改变...

    servlet-api-2.4.jar.zip

    javax.servlet.ServletConfig javax.servlet.GenericServlet javax.servlet.ServletContext javax.servlet.ServletRequest javax.servlet.http.HttpUtils javax.servlet.ServletResponse javax.servlet....

    ServletContext与ServletConfig关系

    ServletContext与ServletConfig关系

    javaWEB总结(3):ServletConfig对象

    ServletConfig对象的试验代码

    servletAPI中文版(TXT格式,自己翻译)

    ServletConfig getServletConfig() 返回传递到servlet的init()方法的ServletConfig对象 void service(ServletRequest request, ServletResponse response)throws ServletException,IOException 处理request对象中...

    JavaWeb新版教程Servlet-1vlet-ServletConfig类的补充说明.avi

    JavaWeb新版教程Servlet-1vlet-ServletConfig类的补充说明.avi

    servlet temple

    缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应...

    javax.servlet.jar下载

    javax.servlet.ServletConfig.class javax.servlet.ServletInputStream.class javax.servlet.ServletOutputStream.class javax.servlet.FilterChain.class javax.servlet.ServletRequestEvent.class javax.servlet....

    ServletConfig的描述

    NULL 博文链接:https://shoushounihao.iteye.com/blog/1919541

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    11.1 方法调用序列 82 11.2 SingleThreadModel 83 11.3 StandardWrapper 83 11.3.1 生成servlet 84 11.3.2 载入servlet 86 11.3.3 ServletConfig对象 90 11.3.3.1 getServletContext方法 90 11.3.3.2 getServletName...

    how-tomcat-works

    11.1 方法调用序列 82 11.2 SingleThreadModel 83 11.3 StandardWrapper 83 11.3.1 生成servlet 84 11.3.2 载入servlet 86 11.3.3 ServletConfig对象 90 11.3.3.1 getServletContext方法 90 11.3.3.2 getServletName...

    ServletConfig

    博文链接:https://hotfisher.iteye.com/blog/92177

    JavaWeb核心之Servlet-源代码

    1)init(ServletConfig config) 何时执行:servlet对象创建的时候执行 ServletConfig : 代表的是该servlet对象的配置信息 2)service(ServletRequest request,ServletResponse response) 何时执行:每次请求都会...

    ServletContext与ServletConfig的深度分析

    很清楚的讲解了ServletContext和ServletConfig,不光有理论上的讲解,还有例子。

    Servlet的运行机制

    1. 手动编写java代码,实现Servlet的访问 2. 使用Eclipse创建Web Project,并创建一个Servlet继承HttpServlet...6. 使用ServletConfig对象,访问web.xml中的数据库连接信息。 7. 使用ServletContext对象,实现转发操作

    servlet2.4doc

    Overview Package Class Tree Deprecated Index Help PREV NEXT FRAMES NO FRAMES A B C D E F G H I J L P R S U V -------------------------------------------------------------------------------- ...

Global site tag (gtag.js) - Google Analytics