我的应用程序中有以下架构。
客户端(GWT)< - calls - > Servlet< - calls - >服务< - 来电 - >道
我想让这个架构更容易进行更改。 例如:当我想从Dao层返回一个对象的插入id时,因为我在客户端需要它,我也必须更新服务和servlet层。所以对于这个小小的改变,我必须更新所有3个层(3个类和3个接口)在6个位置进行更改。 我知道为什么我需要Dao Layer。 我也明白为什么我需要服务层。 我没有得到的是服务层也不能成为servlet的原因。目前我的所有servlet都将请求转发到服务层。
关于Java Servlets的维基百科文章说:
Servlet最常用于 1处理或存储从HTML表单提交的数据
2提供动态内容,例如数据库查询的结果 3管理无状态HTTP协议中不存在的状态信息
1和2只是数据库调用,我在我的dao层中进行,服务层使得额外的业务逻辑成为可能。 3我目前没有参加会议。到目前为止我还没有登录,我只是在玩我的架构,但我认为服务层也可以处理这个问题。
我想知道这种架构变化的因素和优点:
专业人士:
缺点
谢谢你的答案。
答案 0 :(得分:2)
您需要servlet层,因为这是允许访问会话的内容。
此外,您不希望您的服务层需要了解有关HTTP的任何信息,因为您希望能够在其他应用程序中重用服务和DAO层(例如,如果您编写桌面应用程序重新使用这些()和需要包含servlet API在那里没有意义。
如果需要,您可以直接从servlet调用DAO层以获取简单的情况,以便不重复服务和DAO层中的方法。
servlet API具有过滤器,这些过滤器是在Web应用程序中实现安全性的好地方。
如果您已经在为Web应用程序使用Spring框架,则可以使用Spring Security。