0

我正在使用 JSP 编写一个 Web 应用程序,它带有一个跟踪所有用户的 mysql 数据库。在网页中,我使用表单来允许用户注册。

在我的数据库中,例如一个用户的用户名最多有 20 个字符,所以我会避免允许用户注册超过 20 个的用户名。在我的应用程序中,我严格分隔所有级别,所以有很强的分隔在服务、业务逻辑、业务流和使用 JSP 页面完成的表示级别之间。

我关心的是我应该在哪里检查任何给定的字段是否正确。在业务逻辑中,我实现了一个抽象用户概念的类,允许创建一个新用户并将其插入我的数据库中。在业务流程(即 bean)中,我可以详细说明接收到的所有 HTTP 参数,因此我知道所有字段值。我可以在我的 JSP 页面中执行此操作,即使使用 javascript 分析每个插入的字段并有条件地在 bean 中或在我的“用户”类中提交表单。哪一个是最正确的?

4

2 回答 2

1

假设您使用的模式接近 MVC

输入验证与控制器部分相关。由您的控制器来处理数据,然后通过将这些错误消息传递给您的视图来显示用户友好的错误消息。任何处理都必须在控制器中完成,并且正在处理验证数据。

无论如何,模型上的额外安全性并不是一件坏事,但在这种情况下,它完全没有用,因为如果您插入超过 20 个字符,您的数据库引擎将截断(或抛出错误),因此安全性已经到位。

模型仅用于访问和存储数据,而不是验证它!(除了一些罕见的情况,当数据存储需要验证以及数据库结构本身不检查完整性时)。

但同样,这些只是概念,您可以按照自己喜欢的方式自由采用概念。只要您在整个应用程序中保持一致(不要在模型中进行一些验证,在控制器中进行一些验证,如果我们这样做,为什么不在视图中进行一些验证!)

于 2013-06-07T18:45:12.937 回答
0

我会在模型课上做。

您不能做的是在客户端使用 javascript 进行验证,因为用户可以禁用 JS

于 2013-06-07T18:36:26.930 回答