2012-07-12 46 views
0

我在JSP註銷鏈接,我這樣調用如何調用servlet?

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

當我刪除url中的文件夾名稱它工作正常。那麼如何重定向到所需的servlet呢?

請幫幫我。

+0

你是什麼意思的「刪除URL中的文件夾名稱」? – 2012-07-12 09:34:21

+0

剛剛刪除的文件夾名稱 – 2012-07-12 09:38:13

+0

感謝您所有的努力夥計 – 2012-07-12 09:49:04

回答

2

您應該查看錶格的action屬性,根據您分享的代碼和問題描述,我覺得您需要更新表格的action

當前,您應該提供action='TempCardServlet'這意味着將請求提交到位於與當前JSP頁面相同的URL中的TempCardServlet。這是相對路徑參考。

當您指定action='SomePath'時,瀏覽器向http://server/currenturl/SomePath提交請求。如果路徑到你需要提交請求不在當前路徑,然後你需要可以指定下列方式相對路徑或絕對路徑:

相對路徑(在你的情況下):action='../TempCardServlet' - 不推薦使用這種方法因爲相對路徑可能會破壞您的應用程序

帶應用程序上下文的絕對路徑:action='/acct/TempCardServlet' - 這將引用同一服務器上的servlet,缺點是您的硬編碼應用程序上下文。爲了解決這個問題,您可以使用Servlet API來獲取當前的應用程序上下文並將其附加到您的servlet路徑 - 您還可以使用標準標記庫來獲取上下文路徑。

+0

rutesh感謝它解決了 – 2012-07-12 09:46:37

+0

你能不能也幫助我這個,http://stackoverflow.com/questions/11448493/how-to-solve-ev-is-undefined -in-mozilla-firefox – 2012-07-12 09:47:32

+0

這也是:http://stackoverflow.com/questions/11447133/no-issue-is-shown-but-does-not-work-dwr – 2012-07-12 09:48:38

1

讓你的形狀點的action屬性到相應的URL:

<form action="<c:url value='/TempCardServlet'/>" ...> 

如果您需要動態改變它,將它添加到您的JS代碼(前提交,當然):

document.forms["frmTempcard"].action = "<c:url value='/TempCardServlet'/>"; 
1

此:
<a href="/myWebApp/servlets/logout">Logout</a>

...調用你自己的servlet映射是這樣的:

@WebServlet(name="logout", urlPatterns={ "/servlets/logout" }) 
public class LogoutServlet extends HttpServlet { 
    ... 
} 

...在你做你的日誌記錄了邏輯。