通过filename访问JSP文件时获取init参数

时间:2016-04-22 15:02:22

标签: java eclipse jsp servlets

我试图访问JSP文件中的init参数。 当我从这样的servlet映射输入url-pattern时:http://localhost:8080/JEE_Learning/testingJSP 它工作正常,参数就在那里。

但是当我输入JSP文件名时:http://localhost:8080/JEE_Learning/testing.jsp 参数为null。

的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") %>

为什么?

2 个答案:

答案 0 :(得分:0)

如果你添加

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

到JSP页面,你会看到输出

    致电testingJSP和时,
  • .../testingJSP 调用jsp时(在Tomcat中)
  • .../testing.jsp

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

答案 1 :(得分:0)

如果要从中访问name参数 http://localhost:8080/JEE_Learning/testingJSP
http://localhost:8080/JEE_Learning/testing.jsp
然后你应该添加

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

到你的

<servlet-mapping>