java - <jsp :include> with @WebServlet and web. xml 中的页面属性

标签 java jsp servlets web.xml

不要评论 Java 中包命名的约定。

包内有一个 Servlet Ch7ActionTags 映射到

@WebServlet("/FlavorListServlet")

我的 jsp 页面位于 WebContent 下的文件夹中,其路径为:

/Ch7RequestDispatching/ActionTags/MyPage.jsp

前面提到的 servlet 包含在这个 jsp 页面中,如下所示。

<jsp:include page="/FlavorListServlet"></jsp:include>

当我尝试运行这个jsp页面时,浏览器中的url反射(reflect)为

http://localhost:7860/Phil_Hanna/Ch7RequestDispatching/ActionTags/MyPage.jsp

并且 servlet 已成功包含。

我尝试使用正斜杠/

但是这些也不起作用:

<jsp:include page="FlavorListServlet"></jsp:include> 
<jsp:include page="/Ch7RequestDispatching/ActionTags/FlavorListServlet"></jsp:include>

现在正在经历相同的过程(在 web.xml 文件中用 servlet-mapping 替换 @WebServlet 注释)

  <servlet>
        <servlet-name>FlavorListServletName</servlet-name>
        <servlet-class>Ch7ActionTags.FlavorListServlet</servlet-class>
  </servlet>

  <servlet-mapping>
     <servlet-name>FlavorListServletName</servlet-name>
     <url-paatern>/Ch7RequestDispatching/ActionTags/FlavorListServlet
     </url-pattern>
  </servlet-mapping>

现在我的jsp页面:

<jsp:include page="FlavorListServlet"></jsp:include> <%-- / is absent here --%>

通过上述映射,servlet 内容已成功包含。

但这不起作用,

<jsp:include page="/FlavorListServlet"></jsp:include>

因此,明显的问题是为什么在处理两种可能的情况时会存在 / 差异:

<jsp:include page="/FlavorListServlet"></jsp:include> works with @WebServlet
<jsp:include page="FlavorListServlet"></jsp:include>  works with web.xml

最佳答案

  • 如果开头没有斜杠,则包含一个与当前 JSP 页面相关的文件。
  • 以斜线开头,表示包含与网络应用程序上下文路径相关的文件(URL 以斜线开头)

关于java - <jsp :include> with @WebServlet and web. xml 中的页面属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606208/

相关文章:

java - Action 之间的Struts2参数

java - 从 web 服务重定向到 jsp 页面

javascript - 使用 servlet 响应中的 javascript 显示图像

java - 如何使用 EXT-GWT 组合框

java - 结合Java + 蓝牙 + arduino

jsp - 到已编译的 jsp(servlet)的 url 映射不起作用

java - Spring STS : how to know the right URL (http://localhost:8080/. ..) 使用演示应用程序?

java - 保存变量以在类中使用

eclipse中的Java类继承

java - 从 POST 到 GET 的调度程序转发方法