0
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> 
4

2 回答 2

0

当您像这样声明上下文参数时:

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

然后您需要使用“应用程序”对象访问它:

<% 
    String email=application.getInitParameter("email"); 
    System.out.println(email);
%>
于 2013-07-18T06:13:03.123 回答
0

正如您的问题中描述的代码一样,该email参数应使用代码在 JSP 和 Servlet 中显示(确实如此,我对其进行了测试)getServletContext().getInitParameter("email")

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

于 2013-07-18T05:56:59.563 回答