我试图访问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") %>
为什么?
答案 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>