我正在尝试通过 ajax 将 JAVA 类实例从我的 javascript 代码发送到 JSP 文件。我怎样才能发送?我尝试像这样发送实例:
data = {}
data['my_instance'] = JAVA_CLASS_INSTANCE
并通过ajax发送此数据,问题是,在JSP中,它以字符串而不是类的形式接收它
顺便说一下,我得到的 java 类实例是这样的:
<script type='text/javascript'>
var class_instance = "<%= my_class_instance %>"; //if this method is wrong, plz tell me correct method to get instance and send via ajax. Already I have a form, along with the form data, i am trying to send this class also. If there is anyother good way for this, just tell me.
</script>
最佳答案
(下面更新)
从根本上来说,您通过 ajax 从客户端发送到服务器的内容始终是一个字符串。它只能通过服务器端进程解释它而变成其他东西。
这个问题似乎没有任何意义。除非您在客户端上使用 Java 小程序并且 LiveConnect ,您在客户端上根本没有 Java 类实例。
如果您确实在客户端上有一个 Java 类实例(例如,来自小程序),则将其发送到服务器的唯一方法是:
Serialize将其转换为字节流。
将该字节流编码为字符串(Base64 或类似字符串)。
通过 ajax 将编码后的字符串发送到服务器。
在服务器上将字符串解码回字节流。
在服务器上反序列化它。
...几乎肯定会有更好的方法将信息从客户端获取到服务器。
<小时/>您已将问题编辑为:
By the way, I am getting the java class instance like this :
<script type='text/javascript'> var class_instance = "<%= my_class_instance %>"; </script>
这不会在浏览器上为您提供“Java 类实例”。最好的情况是,您会得到一个包含一些信息的字符串。更有可能的是,根据 my_class_instance
服务器端变量中的内容,您将遇到 JavaScript 语法错误。 (例如,如果其中有 '
或换行符或无效的 JavaScript 转义序列等。)
如果您认为这是一个 Java 类实例,那么在尝试编写此代码之前,您需要退后一步并研究 Web 应用程序的基础知识。
关于java - 将java类实例从javascript(通过ajax)发送到jsp或servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13190960/