`

重写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()方法实例详解

    如果选择重写`init(ServletConfig config)`,则必须确保调用`super.init(config)`,以便将配置信息正确地传递给父类,否则Servlet可能无法正确地获取其配置信息。 以下是如何重写这两种`init()`方法的示例: ```...

    Java发布和调用WebService

    如果需要在Web服务器(如Tomcat)上发布WebService,可以通过扩展`HttpServlet`并重写`init()`方法来发布服务。例如: ```java public class PublishServlet extends HttpServlet { @Override public void init...

    java中的servlet

    子类如果重写`init()`,别忘了调用`super.init(config)`以确保配置信息被正确处理。 7. `abstract void service(Request request, Response response) throws ServletException, IOException`: 这是一个抽象方法,...

    Servlet API 中文版

    2. `void init() throws ServletException`: 子类可以重写此方法来实现初始化逻辑,但记得调用`super.init(config)`以确保配置信息被正确保存。 3. `ServletConfig getServletConfig()`: 返回在`init()`方法中传递...

    Servlet_API_中文版.pdf

    开发者通常需要覆盖`init()`方法,但别忘了调用`super.init(config)`来确保`GenericServlet`的初始化行为。 7. `void log(String msg)`: 使用Servlet上下文的日志功能记录消息。 8. `void log(String msg, ...

    servlet api

    在`init(ServletConfig config)`方法结束后自动调用,记得调用`super.init(config)`以确保正确初始化。 9. `void log(String msg)` - 用于记录日志,消息会被添加到Servlet名称前面。 10. `void log(String msg, ...

    Servlet_API_中文版

    此方法通过调用 `ServletConfig.getInitParameter(name)` 实现。 ```java public String getInitParameter(String name) { return this.config.getInitParameter(name); } ``` - **`getInitParameterNames()...

    servlet_串讲

    因此,通常我们在覆盖`init()`方法时只需要覆盖无参数版本,并确保在自定义的`init()`方法中调用`super.init(config)`,以便利用`GenericServlet`提供的默认行为。 总之,Servlet是Java Web开发的核心组件,它们...

    Servlet API 中文版.doc

    - `init(ServletConfig config)`: 存储`config`对象,并调用`init()`方法,子类可以重写`init()`进行初始化操作,别忘了调用`super.init(config)`。 - `log(String msg)` 和 `log(String msg, Throwable t)`: 分别...

    JavaWeb知识点总结

    如果重写`init(ServletConfig config)`,记得在第一行调用`super.init(config);`以确保初始化流程的正确性。 3. **Servlet生命周期中的服务方法**: 当Servlet接收到请求时,会调用`doGet`或`doPost`方法来处理。`...

    servlet aip中文帮助

    子类通常需要重写 `init()` 来完成初始化工作,别忘了调用 `super.init(config)`。 - `void log(String msg)`: 记录日志,调用 `ServletContext` 的 `log()` 方法,方便调试和追踪。 - `void log(String msg, ...

    Servelt API中文版

    - `init(ServletConfig config)`: 子类可以重写此方法进行初始化,但通常需要调用`super.init(config)`来确保父类的初始化工作正常进行。 - `destroy()`: 子类可以在此方法中释放资源,结束后台线程等。 - `...

    servlet资源

    如果子类覆盖了`init(ServletConfig config)`方法,则无需再调用`super.init(config)`,因为已经通过这个便利方法进行了处理。 - **service()方法** ```java public abstract void service(ServletRequest req, ...

    servlet生命周期

    2. **ServletConfig接口**:提供了获取Servlet初始化参数的方法,通常在`init()`方法中使用。 - `String getInitParameter(String paraName)`:获取指定名称的初始化参数值。 3. **GenericServlet抽象类**:实现了...

Global site tag (gtag.js) - Google Analytics