我有一个jsp页面,当点击一个按钮将我带到一个servlet。在那个servlet我基本上检查一个条件,如果它成功我将重定向到一个工作正常的新页面。但是当出现错误时,我想在同一页面上显示错误消息而不重新加载/重定向到同一页面。
下面是我尝试的servlet代码片段,但它似乎不起作用,
if(error){
if (!response.isCommitted())
{
response.reset();
response.resetBuffer();
}
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
response.setContentType("text/html");
PrintWriter pw = new PrintWriter(response.getOutputStream());
pw.write("<html><body><script>alert('Error')</script></body></html>");
pw.close();
response.getOutputStream().flush();
response.getOutputStream().close();
response.flushBuffer();
return;
}
我甚至将 SC_no_content 状态设置为避免重新加载页面或某些内容,但是警告消息没有出现,所以永远都会出现..请建议。
答案 0 :(得分:1)
您需要了解应用程序的流程。
您的Servlet
处理请求。
<html><body><script>alert('Error')</script></body></html>
如果您(正确)在服务器上进行验证,您可以使用javascript异步发送该请求,并根据结果采取措施。
答案 1 :(得分:0)
如果您使用servlet验证数据,则需要重新加载页面。
无论如何都有一个解决方法 通过ajax请求将表单发布到空白目标,解析结果,如果错误通过javascript显示消息,则没有错误通过javascript执行重定向
尝试检查此jquery plugin
另一种方法是使用cometD,这样您就可以将服务器代码的响应发送到javascript代码,而无需在客户端上发布帖子