关于GenericServlet抽象类的疑问..

jzinfo 2009-10-23 01:06:57
GenericServlet实现了servlet接口的同时,也实现了ServletConfig接口(也同时实现了java.io.Serializable接口)
ServeletConfig 接口中的四个方法,GenericServlet是如下实现的:

/*
以下四个方法都是实现的ServletConfig接口中的方法
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}

public String getInitParameter(String name) {
return getServletConfig().getInitParameter(name);
}


public Enumeration getInitParameterNames() {
return getServletConfig().getInitParameterNames();
}


//该方法实现了接口<ServleConfig>中的getServletName方法
// 获取在web.xml文件中注册的servlet名称。如果没有在web.xml 中注册的servlet,该方法直接放回该servlet的类名。
public String getServletName() {
return config.getServletName(); //此处也可不以写成return getServletConfig().getServletName();???
}



上面的最后一个方法:
在实现getServletName()这个方法时,它调用的是config对象的引用。因为在自身带参数的构造方法中 已经将ServletConfig作为参数传递给私有成员变量config作为引用,所以这个理解起来没问题.

但是它这里为什么不像前面三个方法实现的那样使用getServletConfig().getServletName(); 来实现呢?
代码可不可以写成这样子:

public String getServletName() {
getServletConfig().getServletName();
}


请高手讲解下......
...全文
50 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzinfo 2009-10-23
  • 打赏
  • 举报
回复
看了看早期版本4.x的tomcat源码中关于GenericServlet中GerServletName()方法的实现

确实是使用

return getServletConfig().getServletName(); 来实现的

效果一样的.
jzinfo 2009-10-23
  • 打赏
  • 举报
回复
哦 写掉了

是这样:

public String getServletName()
{
return getServletConfig().getServletName();
}


67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧