Java 来自 resultSet 的 getString 首先切断字符串 space 或在 '' 中获取子字符串

Java getString from resultSet cuts off string at first space or takes substring inside of ''

我有一个查询 mysql 数据库然后在 table 中显示数据的 servlet。我有一个名为 type 的列,它是一个字符串。当我这样做时

rs.getString("type")

在不使用输入项的情况下,我得到了完整的字符串(rs 是结果集)。但是当我这样做时:

<input name="class" type="text" value=<%=rs.getString("type")%>>

如果字符串有 space,即 'ABC DEF',那么它的值将只有 'ABC'。或者,如果字符串是 ''1' ABC',则该值仅为 '1'。

我怎样才能得到完整的价值?

我相信您的问题与 getString from ResultSet with spaces 中的问题类似。您或许应该尝试将 rs.getString() 的结果存储在一个变量中,并在您的 HTML 中用引号显示它。例如,如果返回的字符串是 'ABC DEF',那么它看起来像:

<input name="class" type="text" value=ABC DEF>

正确的做法是

<input name="class" type="text" value="ABC DEF">

然而,您的代码非常容易受到 SQL 注入的攻击。请查看我提供的 link 以获得更完整的问题答案。