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

但是当我输入一个JSP文件名时:http://localhost:8080/JEE_Learning/testing.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文件:

<%= getInitParameter("name") %>


这是为什么?

最佳答案

如果添加

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


到JSP页面,您将看到输出


呼叫testingJSP.../testingJSP
调用jsp(在Tomcat中)时为.../testing.jsp


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

10-04 22:43
查看更多