DD 元素<context-param>
和<init-param>
两者都可以通过getInitParameter()
servlet 代码中的方法检索。
现在的问题是,它如何区分<context-param>
和<init-param>
?
DD 元素<context-param>
和<init-param>
两者都可以通过getInitParameter()
servlet 代码中的方法检索。
现在的问题是,它如何区分<context-param>
和<init-param>
?
Servlet初始化参数仅适用于单个 Servlet。该 servlet 之外的任何内容都无法访问它。它是在<servlet>
Deployment Descriptor 的标签内声明的,另一方面context init 参数是针对整个 Web 应用程序的。该 Web 应用程序中的任何 servlet 或 JSP 都可以访问上下文初始化参数。上下文参数<context-param>
直接在标签内的标签中声明<web-app>
。
访问上下文初始化参数的方法是
getServletContext().getInitParameter("name");
而访问servlet init 参数的方法是
getServletConfig().getInitParameter("name");
正如Adeel Ansari 所解释的,在这里,这取决于您getInitParameter()
在 servlet 代码中调用该方法的对象。
所有 servlet 都从GenericServlet
.
.
<context-param>
可以通过以下方式检索DD 元素:
ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");
.
DD 元素<init-param>
都可以通过以下方式检索:
ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");
另请注意,由于GenericServlet
类实现了ServletConfig
接口,因此您的 servlet 类也是 ServletConfig(隐含this = this.getServletConfig()
)。因此,您还可以<init-param>
通过以下方式直接获取 DD 元素:
String paramValue = this.getInitParamter("paramName");
.
您可以通过在具有不同值的两个 DD 元素中使用相同的参数名称来尝试此操作,然后在您的 servlet 中打印它。