【发布时间】:2017-09-26 12:23:13
【问题描述】:
您好,我正在使用 MongoDb 数据库,我必须将网站的所有内容以二进制形式放入 MongoDb 数据库中。现在在 servlet 部分,我需要获取 id 并将 bson 二进制转换为 String 以写入 iFrame。如何使用 Java 在 MongoDb 中将二进制转换为字符串?
JAVA 代码。
//Not quite working.
public String giveSelected(String id){
MongoClient mongoClient = new MongoClient("localhost",27017);
MongoDatabase database = mongoClient.getDatabase("dbTest");
MongoCollection<Document> collection = database.getCollection("colTest");
Document myDoc = collection.find(eq("_id", id)).first();
String str=myDoc.getString("content");
return str;
}
JSP 调用:
//str is the String form of needed content Binary.
<script>
function iFramefunc(){
var s = document.getElementById('iframe');
s.contentDocument.documentElement.innerHTML="<%=str%>";
s.contentDocument.close();
}
</script>
<iframe id="iframe" onload="iFramefunc()"></iframe>
【问题讨论】:
-
这主要取决于创建您网站的二进制表示的代码。那么,这部分是如何工作的呢?你为什么不直接逆转呢?顺便说一句,这听起来像是一种“有趣”的方法,将网站作为 BLOB 存储在数据库中。
-
二进制在 MongoDb 中存储的数据较少,它会自动将它们带到另一个程序中。我所需要的只是将它们作为二进制对象并将其更改为字符串。
-
仍然:本质是在另一个程序中自动获取它们 ...该过程定义了数据库的内容。当您不理解时,您无法反转该操作。也许有base64编码,也许有压缩,谁知道呢。