【问题标题】:Need a design approach or suggestion for a simple structure using Servlet需要一种使用 Servlet 的简单结构的设计方法或建议
【发布时间】:2011-03-03 07:50:09
【问题描述】:

我必须这样设计,以便每当用户传递查询时,我都会处理它 使用servlet然后调用js页面绘制图表

1> 用户在页面上编写查询 2>页面调用servelt类 公共类 MyServlet 扩展了 Httpservlet 实现 DataSourceServlet {..... 返回数据 用户看到这样一个漂亮的字符串.. google.visualization.Query.setResponse......... /Tiger'},{v:80.0}, {v:false}]}]}}); 3> 当用户点击不同的 html 页面 myhtml.js 时,它会绘制 图表。

我希望 Myservlet 类本身调用 myhtml.js 页面并进行绘制 直接上图表。 并想消除美丽的字符串 google.visualization.Query.setResponse......... /Tiger'},{v:80.0}, {v:false}]}]}}); 来自用户的浏览器 我该怎么办? 我尝试使用函数来调用另一个页面,如请求 dispatcher(), redirect() 之后直接调用 myhtml.js 页面 myservlet 处理查询结果。 但我得到这样的结果 google.visualization.Query.setResponse......... /Tiger'},{v:80.0}, {v:false}]}]}}); 以及它下面的整个 myhtml.js 代码页在浏览器上 没有绘制图表。

无论如何,是否有元素来自客户的美丽字符串 浏览器 只向他们展示绘制的图表? :)

这是我正在关注的小教程 http://code.google.com/apis/visualization/documentation/dev/dsl_get_started.html

【问题讨论】:

  • 我的意思是有没有办法从浏览器的 comin 中“消除”Json 字符串?

标签: servlets google-visualization


【解决方案1】:

这有点难以理解,但我认为你从错误的角度处理问题。

由于 HTTP 本质上是一种 PULL 技术,因此让 HTML 页面调用 myhtml.js 功能并从 servlet 请求数据要容易得多。

如果没有大量的基础设施,从 servlet 调用浏览器端 JavaScript 是不可能的,这可能不是您想要的,即精简/简单的解决方案。

【讨论】:

  • 但是为了处理我必须调用 servlet,一旦处理完成我调用 html 页面。我的问题是,在 servlet 处理数据之后......它在没有任何流编写器的情况下在浏览器上反映了一个 json 字符串我不知道为什么会发生这种情况。只有在浏览器上看到 json 字符串时,我才必须单独调用 html 页面才能看到图表。如果我使用 redirect 或 forwad ,包括图表未绘制看到 json 字符串未出现在浏览器上。那么如何在一段时间后让servlet调用html页面。我尝试了 thrd sleep ,refresh 方法,但这对我没有帮助
  • 您创建自己的 HTML 页面。在 HTML 页面(使用 onLoad 事件或类似事件)中,您向 servlet 发起 AJAX 请求以获取图表数据。在这种情况下,您将 2x 传递给 servlet,但 servlet 永远不必“调用”页面。
  • 如果可行,我将遵循您的解决方案并将其发布。所以总结一下,当客户端通过 html 页面发送查询时,服务器会处理查询并在客户端浏览器上响应字符串。一旦字符串出现在浏览器上。客户端可以点击另一个 html 页面并查看图表。客户端只有在服务器响应可见字符串到客户端浏览器后,点击html图表地址才能看到图表。
  • 我对 ajax 和其他东西非常陌生,但我相信 ajax 有能力检测服务器的响应是否已到达浏览器.....彼得,如果您进一步解释解决方案,它将感谢您的帮助
  • Ajax 很强大,但它并没有改变物理定律。从本质上讲,网络是从浏览器的角度来看的拉技术。现在你不需要另一个 HTML 页面,但是你需要你的页面来请求一个图像(或类似的)来填充图表,如果你使用 20 世纪的技术,至少你会这样做。现在我们使用 Javascript 在 div 中渲染图形并从服务器获取数据。所以,简而言之,你有你的 HTML 页面,带有图形 javascript 库、要显示图形的 div,以及一个 onLoad 事件来触发 javascript 从服务器获取数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
相关资源
最近更新 更多