gpt4 book ai didi

java - jsp 页面中的 HTML 无效

转载 作者:行者123 更新时间:2023-12-01 10:59:15 24 4
gpt4 key购买 nike

我在 jsp 页面上显示无效的 HTML 代码时遇到问题。我想在页面上显示存储的行(来自数据库),它们作为字符串包含在我的页面中,如下所示:

... loop    
<td><%= lines[i] %></td>
... end loop

但是,如果字符串由于某种原因包含损坏的 html,则不会显示页面的其余部分,仅显示源代码。有什么方法可以显示无效行并显示页面的其余部分吗?

编辑:我没有说过,但看起来很重要,这些是内部邮件,所以它们不是安全威胁,但有 3 种:

  1. 仅短信电子邮件(正确显示)
  2. 有效的 HTML 电子邮件(正确显示)
  3. 损坏的 HTML 电子邮件(损坏的页面)

所以我认为 text/plain MIME 类型不是一个选项,因为它会破坏 2。

提前致谢!

最佳答案

对于评论来说,这已经相当长了,但它不仅仅是一个快速的答案。你的问题太大了,无法直接回答,但如果你想达到你的范围,你必须

  1. 在存储到数据库之前清理 html 代码
  2. 在将其显示为输出之前对其进行清理

您必须通过在存储 html 之前定义一些要应用的规则来实现这些步骤(例如,您可能希望阻止用户编写 js 代码)。(但这只是一章​​的一部分,有大量的 html validator )。

一旦掌握了第 1 点和第 2 点(我认为这是基本点),您就可以根据需要输出行。

如果您想无论如何输出这些行,您必须以“非渲染方式”阻止所有这些行。您可能愿意使用一个简单的标签/面板,它告诉 .jsp 在编译和执行时将这些行解释为纯粹的字符串,这样它们就不会成为 html 输出的一部分,而是特定组件的一部分。在这种情况下,您可以发现错误(例如标签元素拼写错误)..

编辑

通过你介绍的消息我只能给你一些提示。

就这是一个更大系统的一部分而言,这意味着您在某处存在错误,该错误允许将损坏的电子邮件存储在数据库中。因此,必须在引入第 1 点的更高级别上调查问题,因此您必须在此时清理电子邮件。 (它们存储在 blob 中吗?还是存储在正确的数据类型中?消息是否可能由于不兼容的字符集或其他内容而在数据库中损坏……?我们在这里有大量可能的方法可供调查)

另一方面,在输出体育场,您有两个选择:要么信任数据库中存储的内容,要么在将文本输出到 jsp 页面之前对其进行清理。这两种选择都需要一个验证机制(为此我建议进行谷歌搜索,因为说实话,我不知道如何做到这一点......)。

一旦您拥有这样的机制,您还可以对存储的数据运行清理作业(当且仅当您被允许更改其内容时),以便始终保持干净的消息/邮件。但首先我想调查一下您的数据库中的消息已损坏这一事实背后的原因。

关于java - jsp 页面中的 HTML 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33451171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com