单击JSP上的提交后,URL错误

时间:2013-05-14 20:57:30

标签: java jsp servlets

我是JSP的新手,我正处理一个令人困惑的问题。我有一个JSP表单,位于我的web-app中名为“admin”的子文件夹中(名为“CMS”)。

CMS/admin/display_content.jsp  

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

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

/ deleteContent是名为DeleteContentServlet的servlet的URL模式。它只是从DB中删除用户选择。无论如何,我的问题是,一旦我点击提交,我注意到我的地址栏中输入的URL不正确。而不是

http://localhost:8080/CMS/deleteContent 

我得到了

http://localhost:8080/deleteContent 

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

2 个答案:

答案 0 :(得分:8)

对您的所有网址使用JSTL <c:url>标记:

  • 它将上下文路径(无论是什么)预先设置为绝对URL
  • 如果浏览器不接受cookie,它会在URL中写入会话ID:

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

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

答案 1 :(得分:4)

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

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

希望有帮助...