我是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
我该如何解决这个问题?当我有子文件夹时,是否只用于导入的文件? 谢谢。
答案 0 :(得分:8)
对您的所有网址使用JSTL <c: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">
希望有帮助...