1

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

CMS/admin/display_content.jsp  

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

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

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

http://localhost:8080/CMS/deleteContent 

我明白了

http://localhost:8080/deleteContent 

我怎样才能解决这个问题 ?当我有子文件夹时,这些文件是否仅用于导入?谢谢你。

4

2 回答 2

8

Use the JSTL <c:url> tag for all your URLs:

  • it prepends the context path (whatever it is) to absolute URLs
  • it writes the session ID in the URL in case the browser doesn't accept cookies:

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

For links, it also allows passing parameters to the URL, and encodes them properly (via the <c:param> inner tag).

于 2013-05-14T21:02:12.073 回答
4

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

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

希望有帮助...

于 2013-05-14T21:05:20.360 回答