2016-11-27 28 views
0

我已經看到很多有關此標題的主題,但我需要一些不同的主題。在生成JSP之前調用Java Servlet的Javascript警報

如何在Servlet執行期間調用簡單的JavaScript alert()方法而不破壞它的執行(在客戶端跳轉)?

例如,以下是我想創造,如果有可能什麼概念:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

    // CODE 
    // JavaScript's Alert('Hello') 
    // CODE 
    // response.sendRedirect('page.jsp')  

} 

所以客戶只能看到你好和之後,在已經產生page.jsp

+0

你試圖讓'警報()'對page.jsp運行,用戶有來自某個網​​頁後? – pleasedesktop

+0

JavaScript是在頁面/ JSP內部構建的,您無法做到這一點。 – msagala25

+0

@pleasedesktop不管我在哪裏得到alert(),我只需要提醒用戶關於Servlet的結果,所以我需要在第一頁或第二頁。 – luka032

回答

0

使用Dispatch過程傳遞期望的結果。

Servlet.java:

request.setAttribute("alertName", "Sample Result"); 
request.getRequestDispatcher("page.jsp").forward(request, response); 

如果你想提醒用戶page.jsp啓動使用您在servlet期望的結果之前。您可以使用以下代碼檢索結果,並在頁面加載之前將其放入alert()方法中。

page.jsp:

<body> 
    <input id="alertName" type="hidden" value="${alertName}"/> 
</body> 

上面的代碼將輸入的alertName輸入元素的值是隱藏的,因爲我們不能直接把它的JavaScript的,因爲它只能處理客戶端。 BTW ${alertName}使用EL(表達式語言)檢索,它在服務器端進行處理,這就是爲什麼我們不能直接將其放入JavaScript中。

<script> 
     $(window).load(function() { 
      var alertName = $("#alertName").val(); // retrive using the ID of the input 
      alert(alertName); // The prompt will alert "Sample Result" 
     }); 
</script> 
+0

我需要根據Servlet的結果向他發送不同的警告。 – luka032

+0

@ luka032我編輯它。您可以使用dispatch將結果從servlet傳遞到JSP。 – msagala25

+0

非常感謝,非常感謝! – luka032