在AJAX中使用java bean

时间:2013-05-16 15:23:42

标签: ajax jsp tomcat servlets

我在问,因为我只看到过与struts或JSF这样的框架一起使用的java bean。

是否可以通过AJAX请求发送和访问java bean?

Servlet myServlet创建并填充java bean实例,并在请求范围内设置它。已加载的jsp / html页面使用AJAX从myServlet请求数据。可以以任何方式访问这个bean吗?经过一段时间的思考后,我开始接受这种情况无法做到。

如果无法完成,那么在使用Tomcat / Servlets和JSP时,尝试将模型中的数据(即数据库中的用户信息)异步传输到客户端时,最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

如果使用通常的Java Serialization API将javabean序列化为字节数组甚至是base64编码的字符串,那么技术上是可行的。

但是如何使用专有格式传输数据呢?非Java客户端(例如JavaScript!)如何能够使用序列化Java对象?目前,XML,JSON甚至CSV都得到了更广泛的支持和接受。实际上,每种自尊的编程语言都有工具可以轻松地在XML / JSON / CSV和模型之间进行转换,如所讨论的编程语言所定义的那样。例如。 Java具有JAX-RS API,可以轻松地在javabeans和XML或JSON之间进行转换。 JavaScript显然支持JSON(猜测JSON中的“JS”代表)。

要学习和玩弄基本概念,请转到这个答案:How to use Servlets and Ajax?

要了解JAX-RS优于servlet的优势,请回答这个问题:Servlet vs RESTful

答案 1 :(得分:1)

您仍然可以像通常一样使用struts或jsf构建标记(html)。然后使用通过ajax构造的标记,然后附加到dom。如果你熟悉jQuery,比如jQuery('#selector')。load('actionUrl.action'); 但是如果你想检查一个java bean,那么你必须将它序列化为xml或json。如果您使用的是struts2或spring等Web框架,则可能有一种机制可以为您执行此序列化。如果要编辑bean,则必须序列化,然后编辑序列化bean,然后反序列化回java bean。