在生成JSP之前从Java Servlet调用Javascript警报

时间:2016-11-27 04:52:55

标签: java jsp servlets

我看过很多关于这个标题的话题,但我需要不同的东西。

如何在Servlet执行期间调用简单的JavaScript alert()方法而不破坏它的执行(在客户端跳转)?

例如,如果有可能,我会想要创建的概念:

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

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

}

所以客户端只会看到Hello,之后会生成 page.jsp

1 个答案:

答案 0 :(得分: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中,因为它只处理客户端。使用EL(表达式语言)检索BTW ${alertName},它在服务器端处理,这就是为什么我们不能直接将它放在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>