在servlet代码中,DD元素<context-param>和<init-param>都可以通过getInitParameter()方法进行检索。
现在的问题是,它如何区分<context-param>和<init-param>
发布于 2010-01-15 15:23:34
Servlet 初始化参数仅适用于单个servlet。servlet之外的任何东西都不能访问它。它是在部署描述符的<servlet>标记中声明的,另一方面,上下文初始化参数用于整个web应用程序。web应用程序中的任何servlet或JSP都可以访问上下文初始化参数。上下文参数直接在<web-app>标记内的标记<context-param>中声明。
访问上下文初始化参数的方法是
getServletContext().getInitParameter("name"); 而访问servlet初始化参数的方法是
getServletConfig().getInitParameter("name");发布于 2010-01-16 00:41:13
正如Adeel Ansari, here所解释的,这取决于您在servlet代码中调用方法getInitParameter()的对象。
所有servlets都是从GenericServlet扩展而来的,因此都是from的实例。
。
可以通过以下方式检索DD elements <context-param>:
ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");。
DD elements <init-param>都可以通过以下方式检索:
ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");还要注意,由于GenericServlet类实现了ServletConfig接口,因此您的servlet类也是ServletConfig (意味着this = this.getServletConfig() )。因此,您还可以通过以下方式直接获取DD elements <init-param>:
String paramValue = this.getInitParamter("paramName");。
您可以尝试在两个具有不同值的DD元素中使用相同的param-name,然后在servlet中打印它。
https://stackoverflow.com/questions/2069902
复制相似问题