我看过很多关于这个标题的话题,但我需要不同的东西。
如何在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 。
答案 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>