gpt4 book ai didi

java - 其他实现策略

转载 作者:行者123 更新时间:2023-11-29 07:46:13 25 4
gpt4 key购买 nike

我一直在使用 JSTL 从我的数据库中获取值,并使用如下所示的类似代码将其显示在我的 jsp 页面中。

<sql:setDataSource
var="myDS"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb"
user="root" password="secret"
/>

<sql:query var="list_users" dataSource="${myDS}">
SELECT * FROM users;
</sql:query>

<c:forEach var="user" items="${listUsers.rows}">

<c:out value="${user.name}" />

<c:out value="${user.email}" />

<c:out value="${user.profession}" />

</c:forEach>

我的团队领导建议我,直接将查询放在 jsp 页面中不是一个好的做法。由于此代码中有数据库名称、用户名和密码,我不确定此代码是否实现了适当的安全性。我想知道您对此事的看法,以及是否有其他方法可以使用 JSTL 本身来完成此操作。

最佳答案

由于 JSTL 在服务器端执行,因此不存在安全漏洞,因为应用程序的客户端无法看到查询。这种方法还有其他问题:

  • 查询不可重用。如果您在其他页面需要它,您将需要重复查询。当您有像这样的简单查询时,您无法检查问题,但这种情况会出现在需要参数的更复杂的语句中。
  • 您正在为每个页面手动创建一个连接!这会减慢您的应用程序。为配置为资源或以编程方式(例如 C3PO 或 BoneCP)的数据库连接池使用适当的数据源

将所有数据库代码移动到适当的数据访问层类中。并使用 <sql> JSTL 仅供学习之用,不适用于实际应用。

更多信息:

关于java - 其他实现策略 <sql :query>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25479412/

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