完成后使用AJAX重定向到JSP

时间:2013-08-19 07:10:27

标签: ajax jsp

我是AJAX的新手,我遇到了问题。我的JSP中有一个<div>。我使用<jsp:include>在上面的JSP中包含了另一个JSP。问题是包含的JSP执行数据库操作,并且渲染需要花费大量时间。我希望首先加载前一个JSP,然后再将后一个JSP加载到DIV中。我搜索但无法理解如何解决它。基本上,我希望显示以前的JSP,然后在完成操作后显示后者。目前,前一个JSP需要花费大量时间来加载,因为后者包含在前一个JSP中,并且只有在后一个JSP完成加载时才会呈现。

感谢您的帮助。 :)

2 个答案:

答案 0 :(得分:0)

我认为这不是正确的做法。数据库交互部分应该由某些Servlet触发的DAO类完成。使用JSP进行数据库交互很糟糕。说过你现在的问题可以通过以下方法解决:

  1. 从JSP中删除所有数据库操作。
  2. 在主JSP中保留div
  3. 加载时,触发对Servlet的AJAX调用。
  4. Servlet / DAO类执行数据库操作并返回结果。如果需要,将结果存储在session
  5. 在AJAX请求函数的成功处理程序中,编写一个回调函数来加载另一个JSP文件。
  6. 检查此答案Load a jsp page using AJAX load method

答案 1 :(得分:0)

流行的方法是使用jQuery之类的javascript库,并使用ajax调用长时间运行的操作

$.ajax('/longrunningop', {
  type: 'POST',
  data: 'a=1&b=2'}).done(function(data) {
    // code to display data to div here..
  });

良好的做法是编写长时间运行的操作以返回JSON而不是JSP