【发布时间】:2017-02-23 22:35:15
【问题描述】:
所以我的项目演示了使用 servlet 的 k-means 聚类算法的结果。
当我第一次集群时,一切正常,我的程序将用户重新定位到results.jsp 页面。
但是因为k-means 在选择质心时有点随机,所以我在results.jsp 的代码中添加了re-cluster 功能,它使用最初使用的设置重新聚类我的数据。
我用于重新聚类的 servlet 代码如下所示:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
do stuff...
//reload results page
String htmlResponse = "<html><header><meta http-equiv=\"refresh\" content=\"0; URL='results.jsp\" /></header></html>";
writer.println(htmlResponse);
//but this doesnt work...
}
所以集群完成后,我想重新加载resutls.jsp 页面。我尝试将JavaScript 添加到我的jsp 页面,因为refresh 是客户端操作。但是这种方法的问题是refresh 发生在集群完全完成之前。所以我在尝试打印结果时得到Exceptions。有什么建议吗?
我的refresh 脚本如下所示:
<script type="text/javascript">
function refresh() {
location.reload(true);
}
</script>
<script type="text/javascript">
function reCluster(cluster_id) {
recluster();
}
</script>
在.jsp 上我这样称呼:
<form class="form-horizontal" action="generateArff" method="GET" enctype="multipart/form-data">
<button type="button" class="btn btn-default btn-lg" onclick="reCluster(); refresh();">
<span class="glyphicon glyphicon-refresh"></span> Re-Cluster
</button>
<button type="submit" class="btn btn-info btn-lg">
<span class="glyphicon glyphicon-download"></span> Generate file
</button>
</form>
Can you advice on the matter?
【问题讨论】:
-
抱歉,我不清楚异常来自哪里——它们是由您尝试刷新的 jsp 中的代码抛出的吗?它们是第一次被抛出还是仅在刷新后被抛出?
-
您可以使用 AJAX 或类似方法从客户端调用服务,当工作完成后,接收回调。
-
@MarcoBolis 进行完整性检查,我设置了集群,所以最初它们有一个
index of -1,所以如果在我的实施过程中发生了一些事情,我会发现错误。对于重新集群过程,我将所有现有集群重置为其原始设置。又名index -1,所以当我打印它们时,因为它们存储在ArrayList中,你可以想象index of -1会发生什么 -
@JoseQuintoZamora 我已经在这样做了。我正在从
AJAX调用该服务。事情是服务被调用后,客户端去refresh服务非常快,之前有足够的时间来计算new集群 -
@Jack 如果你是通过 AJAX 调用服务,那你为什么要刷新?抱歉,我正在努力更好地理解这个问题
标签: javascript java jsp servlets