如何将初始参数转换为jsp?

时间:2014-07-12 15:47:08

标签: java jsp

我想得到我在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") %>

但我从来没有。

3 个答案:

答案 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从那里读取它们。