我想得到我在web.xml中声明的params。
此代码片段来自web.xml
:
<servlet>
<servlet-name>index</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>test</param-name>
<param-value>testValue</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
我试图通过这段代码得到一些:
<%= getServletContext().getInitParameter("test") %><%= application.getInitParameter("test") %><%= "Param = " + application.getInitParameter("test") %>
但我从来没有。
答案 0 :(得分:1)
要获取servlet init参数,请不要调用将返回上下文参数的getServletContext().getInitParameter()
,但您必须调用:
<%= getServletConfig().getInitParameter("test") %>
或只是
<%= config.getInitParameter("test") %>
答案 1 :(得分:0)
首先,你正在使用一个不是很好的代码实现的scriptlet。你应该避免使用它们。使用servlet来做这些事情。自JSP 2.0引入以来,Java Scriptlet已经过时和失去信誉没有在JSP中使用Java scriptlet的充分理由。
还有一件事你的代码对于从servlet上下文获取值是正确的。你可能有问题的web.xml
更改您的web.xml.Change您的网址格式:
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
你可以通过编写代码来获得价值,或者只需<%=config.getInitParameter("test")%>
答案 2 :(得分:0)
不要将每个jsp定义为servlet。还有一个jsp servlet会为你处理这个问题。如果您需要应用程序范围的变量,请使用“context-param”。最好避免使用“全局”变量,除非它们在每台服务器上都有变化创建一个属性文件,并使用ResourceBundle从那里读取它们。