【问题标题】:MVC - check if password was entered correctly [closed]MVC - 检查密码是否输入正确[关闭]
【发布时间】:2016-04-12 13:08:59
【问题描述】:
我是 MVC 新手,目前正在使用 servlet 为 Web 应用程序创建后端。我听说所有的处理都必须进入模型。
所以在我的模型中,我从数据库中获取数据并将其与从请求对象中获取的值进行比较。
现在我的一位小伙伴说,这个逻辑属于认证,因此必须进入控制器。
我现在很困惑,希望有人可以帮助我找出实际放置该功能的位置。模型或控制器。
提前干杯。
【问题讨论】:
标签:
java
servlets
model-view-controller
【解决方案1】:
模型只是描述您的数据库相关实体的类。您不应使用此类来实现 CRUD 操作。您需要使用一个 DAO(一个仅对特定类执行 crud 操作的类)和一个使用此 DAO 查询 db 的控制器(您的 servlet)。
DAO 有类似的方法
public void save(entity entity);
public Entity loadById(Long id);
etc etc...
你必须这样想:
当您必须执行与 Bean 行为密切相关的操作时(例如计算 Bean 表示购物车的总价),您可以在模型类中实现此功能(方法)(始终由控制器调用)。
所有其他功能都应在管理的控制器中实现
功能逻辑。
必须区分模型类、控制器类、视图类和持久性类(用于 CRUDS 的 DAO)
【解决方案2】:
模型是数据本身,在本例中是“用户”或“密码”类。
在我看来,正确的位置是 控制器:它检查数据是否正确(密码、出生日期等)。
通过这种方式,您可以使用不同的逻辑重用您的模型,而无需更改“用户”类。例如,您可以添加一个简单的 max-retry-attempts 系统并保留 User 类原始
但是如果你想阻止一个ajax调用,