我在jsp中有一个注销链接,我这样调用注销功能
function logout(){
document.getElementById("functiontype").value="logout";
document.forms["frmTempcard"].submit();
}
我这样称呼:
<li><a href="#" onclick="logout()">Logout</a></li>
当我单击链接时,我看到以下网址:
http://localhost:8080/acct/notifier[the jsp file is there in this folder only ]/TempCardServlet
当我删除网址中的文件夹名称时,它工作正常。那么如何重定向到所需的servlet?
请帮我。
最佳答案
您应该查看表单的action
属性,根据您共享的代码和问题描述,我觉得您需要更新表单的action
。
当前,您已经给出了action='TempCardServlet'
,这意味着将请求提交到与当前JSP页面位于相同URL的TempCardServlet
。这是相对路径参考。
当您指定action='SomePath'
时,浏览器会将请求提交到http://server/currenturl/SomePath
。如果您要提交请求的路径不在当前路径中,则需要以以下方式指定相对路径或绝对路径:
相对路径(针对您的情况):action='../TempCardServlet'
-不建议使用此方法,因为相对路径可能会破坏您的应用程序
具有应用程序上下文的绝对路径:action='/acct/TempCardServlet'
-这将引用同一服务器上的servlet,其缺点是您正在对应用程序上下文进行硬编码。为了解决这个问题,您可以使用Servlet API来获取当前的应用程序上下文并将其附加到Servlet路径中-您还可以使用标准标记库来添加上下文路径。