Java 差异b/w<;上下文参数>;及<;初始参数>;
DD元素Java 差异b/w<;上下文参数>;及<;初始参数>;,java,servlets,deployment-descriptor,init-parameters,Java,Servlets,Deployment Descriptor,Init Parameters,DD元素和都可以通过servlet代码中的getInitParameter()方法检索 现在的问题是,它如何区分和?Servletinit参数仅适用于单个Servlet。servlet之外的任何东西都无法访问该servlet。它在部署描述符的标记中声明,另一方面上下文init参数用于整个web应用程序。该web应用程序中的任何servlet或JSP都可以访问上下文init参数上下文参数在标签中直接在标签内声明 访问上下文初始化参数的方法是 getServletContext().getInitP
和
都可以通过servlet代码中的getInitParameter()
方法检索
现在的问题是,它如何区分
和
?Servletinit参数仅适用于单个Servlet。servlet之外的任何东西都无法访问该servlet。它在部署描述符的
标记中声明,另一方面上下文init参数用于整个web应用程序。该web应用程序中的任何servlet或JSP都可以访问上下文init参数上下文参数在标签
中直接在
标签内声明
访问上下文初始化参数的方法是
getServletContext().getInitParameter("name");
而访问servlet init参数的方法是
getServletConfig().getInitParameter("name");
正如所解释的,这取决于您在servlet代码中调用方法getInitParameter()
的对象
所有servlet都从扩展而来,因此都是GenericServlet
的实例
DD元素
可通过以下方式检索:
ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");
ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");
DD元素
都可以通过以下方式检索:
ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");
ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");
还请注意,由于GenericServlet
类实现了ServletConfig
接口,因此servlet类也是ServletConfig(暗示this=this.getServletConfig()
)。因此,您还可以通过以下方式直接获取DD元素
:
String paramValue = this.getInitParamter("paramName");
您可以尝试在两个DD元素中使用不同值的相同参数名,然后在您的servlet中打印它。我不知道为什么,但我同意这是令人困惑和恼火的。