2012-02-16 107 views
0

我正在研究一个项目,并且Enumeration引用由getAttributeNames()ServletContext类引起的问题。为什么ServletContext的getAttributeName()返回不需要的属性?

getAttributeNames()返回的属性名称永远不会被我添加,那么为什么它会显示它们?

这些属性是:

org.apache.tomcat.InstanceManager 
org.apache.catalina.jsp_classpath 
org.apache.tomcat.util.scan.MergedWebXml  
javax.servlet.context.tempdir 
org.apache.catalina.resources 
org.apache.tomcat.JarScanner  
org.apache.jasper.compiler.TldLocationsCache 

可有人告诉我如何跳过他们,这样我可以通过检索存储我的属性?

+1

为什么你以任何方式使用'getAttributeNames()'?你想调试它们吗?或者你为自己的属性生成随机属性名称,以至于你不能只使用'getAttribute()'?再想一想。 – BalusC 2012-02-17 00:02:12

回答

2

他们是在他们的服务器逻辑内使用的tomcat属性。你不必为他们烦扰。

+0

但是,如果我想检索由我存储的属性呢? – 2012-02-16 09:35:02

+1

做getAttribute它应该给你吗? – 2012-02-16 09:44:29

1

每个容器都设置了一些属性(取决于实现规范的Web服务器)。例如,Tomcat的5设置以下上下文属性:

  1. org.apache.catalina.jsp_classpath
  2. org.apache.catalina.WELCOME_FILES
  3. javax.servlet.context.tempdir
  4. org.apache .catalina.resources。

因此它们是由该方法返回的。

有关更多详细信息,请参见This

1

这些属性是Servlet容器(您的情况下为Tomcat)在内部添加和使用的属性。尽量不要惹他们...

+0

但是,如果我想检索由我存储的属性呢? 我怎么能跳过这些服务器的属性 – 2012-02-16 09:35:48

+1

'faisal.abc'。用某些东西前缀你自己的属性并相应地进行过滤。或者只使用一个属性,这是一个HashMap,并把所有的东西放在那里。 – Thilo 2012-02-16 12:16:57

相关问题