获取init参数的问题

时间:2013-07-17 19:26:19

标签: java jsp servlets

out.println("<br>" + getServletConfig().getInitParameter("ad"));
out.print("<br>" + getServletContext().getInitParameter("email"));

我有一个JSP页面。

当我运行我的应用程序时,它总是返回null,而不是电子邮件。

但是当我在我的servlet代码中使用它时运行正常。

以下是完整的代码:

<% 
List styless = (List) request.getAttribute("styles");
int n = styless.size();
for (int i = 0; i < n; i++) {
    out.print("<br>" + styless.get(i));
}
out.println("<br>" + getServletConfig().getInitParameter("ad"));
out.print("<br>" + getServletContext().getInitParameter("email"));
%> 

在这段代码中,ServletConfig或ServletContext都没有返回null,但在servlet中工作正常

的web.xml

<servlet> 
    <servlet-name>Ch3 Beer</servlet-name> 
    <servlet-class>action.BeerSelect</servlet-class> 
    <init-param> 
        <param-name>ad</param-name> 
        <param-value>hawc91@gmail.com</param-value> 
    </init-param> 
</servlet>
<context-param> 
    <param-name>email</param-name> 
    <param-value>rnsal28@yahoo.com</param-value> 
</context-param> 

2 个答案:

答案 0 :(得分:0)

由于您的问题中描述了代码,email参数应该使用代码getServletContext().getInitParameter("email")在JSP和Servlet中显示(并且我测试了它)。

现在是ad参数,它在JSP中显示null(正确),因为此参数位于Servlet的本地。 ad仅在Servlet代码中可用(并且应该是它),并且可以使用getServletConfig().getInitParameter("ad")

进行访问

答案 1 :(得分:0)

当你声明这样的上下文参数时:

<context-param> 
    <param-name>email</param-name> 
    <param-value>rnsal28@yahoo.com</param-value> 
</context-param> 

然后你需要使用'application'对象访问它:

<% 
    String email=application.getInitParameter("email"); 
    System.out.println(email);
%>