差异b / w 和

DD元素都可以通过servlet代码中的getInitParameter()方法检索。

现在的问题是,它如何区分

Servlet init参数仅适用于单个servlet。 该servlet之外的任何内容都无法访问它。 它在Deployment Descriptor的标记内声明,另一方面, 上下文init参数用于整个Web应用程序。 该Web应用程序中的任何servlet或JSP都可以访问上下文init参数上下文参数直接在标记内的标记中声明。

访问上下文init参数的方法是

 getServletContext().getInitParameter("name"); 

而访问servlet init参数的方法是

 getServletConfig().getInitParameter("name"); 

正如Adeel Ansari所解释的,这取决于你在servlet代码中调用getInitParameter()方法的对象。

所有servlet都是从GenericServlet扩展而来的。

DD元素可以通过以下方式检索:

 ServletContext context = this.getServletContext(); String paramValue = context.getInitParamter("paramName"); 

DD元素都可以通过以下方式检索:

 ServletConfig config = this.getServletConfig(); String paramValue = config.getInitParamter("paramName"); 

另请注意,由于GenericServlet类实现了ServletConfig接口,因此您的servlet类也是ServletConfig(暗示this = this.getServletConfig() )。 因此,您还可以通过以下方式直接获取DD元素

 String paramValue = this.getInitParamter("paramName"); 

您可以通过在具有不同值的两个DD元素中使用相同的param-name来尝试此操作,然后将其打印在servlet中。