Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 差异b/w<;上下文参数>;及<;初始参数>;_Java_Servlets_Deployment Descriptor_Init Parameters - Fatal编程技术网

Java 差异b/w<;上下文参数>;及<;初始参数>;

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

DD元素
都可以通过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中打印它。

我不知道为什么,但我同意这是令人困惑和恼火的。