如何在服务器端呈现javascript

如何在服务器端呈现javascript,java,javascript,serverside-javascript,Java,Javascript,Serverside Javascript,我通过使用java.net.URL和输入流获取一个字符串形式的网页内容 我遇到的问题是,我的javascript没有呈现,我得到的是原样的响应 <html> <head></head> <body> <script> document.write("<h1>hello world!</h1>"); </script> </body> </html> 写下

我通过使用java.net.URL和输入流获取一个字符串形式的网页内容

我遇到的问题是,我的javascript没有呈现,我得到的是原样的响应

<html>
 <head></head>
 <body>
  <script>
   document.write("<h1>hello world!</h1>");
  </script>
 </body>
</html>

写下“你好,世界!”;
假设这是用HTML文件编写的代码。。现在我想当我得到网页内容的字符串。。javascript应该被渲染

<html>
 <head></head>
 <body>
   <h1>Hello World!</h1>
 </body>
</html>

你好,世界!

像这样。。我如何做到这一点???

JavaScript不会由java.net.URL自动执行。带有内联JavaScript的HTML文件与任何其他纯文本文件一样,不会以任何方式进行解析。没有构建DOM,没有执行JavaScript,没有应用CSS。要执行JavaScript,您需要做的是使用以下内容对其进行解析


但是,如果您可以控制HTML,我建议您将
document.write()
语句替换为静态HTML。当然,一个非常基本的替代方法是只搜索正则表达式
document\并将其替换为第一个捕获的匹配项。

java.net.URL不会自动执行JavaScript。带有内联JavaScript的HTML文件与任何其他纯文本文件一样,不会以任何方式进行解析。没有构建DOM,没有执行JavaScript,没有应用CSS。要执行JavaScript,您需要做的是使用以下内容对其进行解析

但是,如果您可以控制HTML,我建议您将
document.write()
语句替换为静态HTML。当然,一个非常基本的替代方法是只搜索正则表达式
document\并将其替换为第一个捕获的匹配项。

上面提到的netscape.javascript.JSObject类中的eval方法可能就是您所要寻找的(尽管我不确定它是否负责DOM操作以及是否可以跨浏览器工作)

祝你好运

上面提到的netscape.javascript.JSObject类中的eval方法可能就是您所要寻找的(尽管我不确定它是否负责DOM操作以及是否可以跨浏览器工作)


祝你好运

我在谷歌上搜索了一下,发现了服务器端javascript的概念。这是同一件事吗。犀牛能做这件事吗?如果可以的话。Rhino如何执行JavaScript,但对HTML或DOM没有概念,因此它不知道
文档
对象,也不知道它有
write()
方法。我在谷歌上搜索了它,找到了服务器端JavaScript的概念。这是同一件事吗。犀牛能做这件事吗?如果可以的话。Rhino如何执行JavaScript,但对HTML或DOM一无所知,因此它不知道
文档
对象,也不知道它有
write()
方法。“Eval”我认为是不够的。它可以在“script”标记之间呈现js,但不能触发“body onload='blabla'”等事件。我认为“Eval”是不够的。它可以在“script”标记之间呈现js,但不能触发“body onload='blabla'”等事件。