我在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路径中-您还可以使用标准标记库来添加上下文路径。

10-01 14:16
查看更多