java - 为什么直接从 Servlet 访问 DAO 是一种不好的做法?

标签 java servlets dao

我正在阅读有关使用 Java 进行 Web 开发的良好实践的主题,发现从 Servlet 调用 DAO 是一个不好的实践。该主题本身没有解释为什么这是一个不好的实践,尽管它清楚地解释了,遵循最佳实践,我们需要一个中间类(例如:服务类)来调用 DAO。

为什么这是一个不好的做法?对此有任何理论和/或技术解释吗?

最佳答案

答案是为了可用性

  • DAO 解析对数据库对象的访问。
  • Servlet 必须仅用作处理远程请求和响应(通常是 HTTP)的外观。

Servlet 的目的是对参数进行解析/格式化;但他们一定对业务逻辑一无所知。

因此,Servlet 和 DAO 之间需要一个中间级别的业务逻辑类。此级别的类必须了解业务规则、数据库模式以及如何使用它们。该业务逻辑不得耦合到任何部署模式,因此可以从多个外观中使用(和重用):

  • servlet/jsps,
  • Swing 图形用户界面,
  • Spring Controller ,
  • Ant 任务,
  • 等等

关于java - 为什么直接从 Servlet 访问 DAO 是一种不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051469/

相关文章:

java - 如何访问 webapp 中我的应用程序附近的文件夹?

java - 如何在docker容器之间连接oracle数据库?

javascript - 使用 Spring Boot 和 Zuul 进行 CORS 预检请求的 Host 与 Origin header

java - 从 Servlet 的 HTML 部分的文本框中获取值

java - 是否应该在 DAO 中实现特定于数据源的限制?

java - 无法在jsp中显示从dao获取的数据

java - 在 Spring Boot 中使用重定向

java - 如何修复 Web 应用程序中的 session 固定问题

java - 为什么 web.xml 中的 servlet 配置有 1 个额外级别?

Android Room `Insert` - 如何通过比较对象字符串来验证我不会输入相同的对象?