2017-09-21 50 views
0

我一直堅持這個問題兩天,現在我找不到解決方案。 我有這樣的項目結構如上: enter image description here 我想轉發請求從Survey(這是一個Servlet)到survey.jsp。 現在,當我在本地主機上部署IntelliJ時,轉發是成功的。現在我拿.war並使用Tomcat Apache管理器將其部署到專用服務器。 當我打電話dedicatedserverip:8080index.jsp加載正確localhost:8080。但是,當涉及到轉發有兩種情況:將部署在遠程服務器上的servlet轉發到.jsp的請求失敗

  1. .war文件的名稱是從survey.war不同當正向發生了,我得到404錯誤。 (在這種情況下,我認爲請求被轉發到dedicatedserverip:8080
  2. .war文件的名稱是survey.war當轉發發生時,它恰好再次加載index.jsp頁面。 (在這種情況下,我想請求轉發到dedicatedserverip:8080/survey

下面是我用將請求轉發代碼:

req.getRequestDispatcher("/survey.jsp").forward(req, resp); 

現在我的問題是:有什麼事做錯了?還是有什麼我必須明白,我沒有?我如何解決它並獲得所需的結果在本地主機?

回答

0

最後,我解決了這個問題。它與前鋒無關,問題在於提交表單行動。行動是action="/survey"。我用${pageContext.request.contextPath}/survey替換。它解決了這個問題。這解釋了爲什麼.war名稱爲survey.war時調用索引頁的原因,以及錯誤頁的不同。 感謝您的支持。

1

您是否嘗試過轉發相對而非絕對?

req.getRequestDispatcher("survey.jsp").forward(req, resp); 

此外,如果您更改war文件的名稱並使用它的應用程序的ServletContext,應該沒有問題。

+0

感謝您的支持。我浪費了很多時間來處理我的一個小錯誤。你會找到解決方案給我自己的答案 – HasS

相關問題