【问题标题】:Using forward slash in java servlet for print html code with StringBuilder or PrintWriter在 java servlet 中使用正斜杠打印带有 StringBuilder 或 PrintWriter 的 html 代码
【发布时间】:2016-07-21 07:42:23
【问题描述】:

当我将 servlet 的输出打印到 html 时,任何带有斜杠的代码都不起作用,例如:

StringBuilder htmlOut = new StringBuilder();
htmlOut.append("<body style='background-image: url('images/background.jpg');'>");

任何导致正斜杠的东西在 html 中都不起作用。使用 StringBuilder 或 PrintWriter 通过 servlet 传递给 html 斜线的正确方法是什么? 谢谢

【问题讨论】:

标签: java html servlets stringbuilder printwriter


【解决方案1】:

问题不在于/ 本身,而在于该字符串中有4 个单引号,这意味着images/background.jpg 是body 标签的一部分,而不是style 属性。

浏览器可能会在没有/ 的情况下“猜出你的意思”;但是/ 却把它扔掉了。

尝试将外部的双引号改为双引号(需要转义):

htmlOut.append("<body style=\"background-image: url('images/background.jpg');\">");
                            ^^ Here, and the corresponging closing quote.

【讨论】:

  • 这个例子不起作用:htmlOut.append("");
  • 在我的 JSP 中工作:
  • @AngelPicallo 因为= 后面的空格?因为使用' vs "?这与 Java 无关,您只是在生成无效的 HTML。
  • 但在我的 servlet 中不起作用:htmlOut.append("");
  • 在我的 servlet 中完成这项工作:htmlOut.append("");
猜你喜欢
  • 2019-01-13
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 2013-06-07
  • 2020-05-18
  • 2012-04-22
相关资源
最近更新 更多