Java 按文件名访问JSP文件时获取init参数

Java 按文件名访问JSP文件时获取init参数,java,eclipse,jsp,servlets,Java,Eclipse,Jsp,Servlets,我正在尝试访问JSP文件中的init参数。 当我从servlet映射中输入url模式时,如下所示: 它工作正常,参数在那里 但当我输入JSP文件名时: 参数为空 web.xml: <servlet> <servlet-name>testingJSP</servlet-name> <jsp-file>/testing.jsp</jsp-file> <init-param> <param-name>

我正在尝试访问JSP文件中的init参数。 当我从servlet映射中输入url模式时,如下所示: 它工作正常,参数在那里

但当我输入JSP文件名时: 参数为空

web.xml:

<servlet>
  <servlet-name>testingJSP</servlet-name>
  <jsp-file>/testing.jsp</jsp-file>
  <init-param>
    <param-name>name</param-name>
    <param-value>John</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>testingJSP</servlet-name>
  <url-pattern>/testingJSP</url-pattern>
</servlet-mapping>

测试JSP
/testing.jsp
名称
约翰
测试JSP
/测试JSP
JSP文件内部:

<%= getInitParameter("name") %>

为什么会这样?

如果您添加

<%=getServletConfig().getServletName()%>

到JSP页面,您将看到输出

  • 调用
    时,
    testingJSP
  • 调用
    ../testing.jsp
    (在Tomcat中)时使用
    jsp
因此,第一个请求调用
testingJSP
servlet,第二个请求调用容器的JSP servlet。因此,servlet init参数仅在第一个请求中定义。

如果添加

<%=getServletConfig().getServletName()%>

到JSP页面,您将看到输出

  • 调用
    时,
    testingJSP
  • 调用
    ../testing.jsp
    (在Tomcat中)时使用
    jsp

因此,第一个请求调用
testingJSP
servlet,第二个请求调用容器的JSP servlet。因此,servlet init参数仅在第一个请求中定义。

如果您想从


那么你应该加上

<url-pattern>/testing.jsp</url-pattern>    
/testing.jsp
给你

<servlet-mapping>

如果要从


那么你应该加上

<url-pattern>/testing.jsp</url-pattern>    
/testing.jsp
给你

<servlet-mapping>

你的回答让我想到了这一点:这对我来说是完全正确的。谢谢:)你的回答让我想到了这一点:这对我来说是完全正确的。谢谢:)