【问题标题】:Wrong URL after clicking submit on JSP from单击 JSP 上的提交后 URL 错误
【发布时间】:2013-05-15 05:08:56
【问题描述】:

我是 JSP 的新手,我正在处理一个令人困惑的问题。我有一个 JSP 表单,位于我的网络应用程序(名为“CMS”)中名为“admin”的子文件夹中。

CMS/admin/display_content.jsp  

我的表单具有以下动作和方法属性值

<form action="/deleteContent" method="POST"> 

/deleteContent 是名为 DeleteContentServlet 的 servlet 的 URL 模式。它只是从数据库中删除用户选择。无论如何,我的问题是,一旦我点击提交,我发现地址栏中的 URL 不正确。而不是得到 ​​p>

http://localhost:8080/CMS/deleteContent 

我明白了

http://localhost:8080/deleteContent 

我该如何解决这个问题?当我有子文件夹时,这些文件是否仅用于导入? 谢谢你。

【问题讨论】:

  • 考虑使用&lt;form action="${pageContext.request.contextPath}/path"&gt;, stackoverflow.com/questions/3919998/…
  • @SotiriosDelimanolis 谢谢。我应该提到我正在使用 JSTL,但这有助于我理解 url 的解释方式。

标签: java jsp servlets


【解决方案1】:

对所有 URL 使用 JSTL &lt;c:url&gt; 标签:

  • 它将上下文路径(无论它是什么)添加到绝对 URL
  • 它会在 URL 中写入会话 ID,以防浏览器不接受 cookie:

    <form action="<c:url value='/deleteContent'/>" method="POST">
    

对于链接,它还允许将参数传递给 URL,并对其进行正确编码(通过 &lt;c:param&gt; 内部标记)。

【讨论】:

    【解决方案2】:

    根据this,您可以在您的servlet 中使用request.getContextPath() 来获取上下文路径。除非它与您的不同,否则您无需指定操作的主机名:

    <form action="<%= request.getContextPath() %>/deleteContent" method="POST">
    

    希望对您有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多