有没有一种方法可以用Java和JavaScript使用公共代码库进行输入验证?

有没有一种方法可以用Java和JavaScript使用公共代码库进行输入验证?,java,javascript,spring-mvc,hibernate-validator,Java,Javascript,Spring Mvc,Hibernate Validator,对于java web应用程序,通常我们需要在前端使用javascript进行验证,然后在后端使用java进行验证,一些java验证工具(如hibernate validator)可以在后端使用,而在客户端则使用jquery表单验证 但问题是,有没有更简单的方法将两者结合起来?例如,当使用springmvc和Hibrate验证器时,前端验证会自动出现吗? thx别忘了,有两种非常不同的验证形式 首先,验证以确保用户输入合理的条目。考虑常用的密码/确认密码系统。确认密码字段的唯一意义是防止用户意外地

对于java web应用程序,通常我们需要在前端使用javascript进行验证,然后在后端使用java进行验证,一些java验证工具(如hibernate validator)可以在后端使用,而在客户端则使用jquery表单验证

但问题是,有没有更简单的方法将两者结合起来?例如,当使用springmvc和Hibrate验证器时,前端验证会自动出现吗?
thx

别忘了,有两种非常不同的验证形式

首先,验证以确保用户输入合理的条目。考虑常用的密码/确认密码系统。确认密码字段的唯一意义是防止用户意外地给自己带来不便

类似地,检查有效的电子邮件地址、必填字段等,只是为了确保用户输入了真正的意思

第二,有必要确保仅对系统进行法律变更。一个用户不能更改属于另一个用户的数据,员工不能给自己加薪,等等

第一类验证只需要在Javascript中完成。如果用户愿意,他可以打败他们,但他只伤害自己

第二类验证必须在后端完成。通常,但并非总是,没有必要优雅地犯错。如果用户已经绕过了UI,或者对AJAX进行了反向工程,那么您不必客气。只需返回500并记录入侵

有一些重叠。例如,如果用户正在创建一个(假定的)唯一用户名,那么唯一性检查可能会在通过所有Javascript检查后的最后一秒失败,因为其他人使用了以前未使用的名称


但这是例外,不是规则。大多数后端验证只是非常简单的安全性或类似于安全性的检查,与前端的验证非常不同

您可以向validation plugin.thx添加一个自定义的基于ajax的验证器,您能更具体一点吗?比如,给出一些例子或url?谢谢。你能更具体地说明你的要求吗?对于使用ajax的示例自定义验证-,您所说的基本上是进行后端验证,但使用ajax调用;我的问题是,我们将有后端验证代码和前端javascript验证代码,它们在某种程度上是重复的,我们能以某种方式避免吗?比如java验证代码中的自动javascript验证生成器?以电子邮件地址为例,这个验证只在前端完成是否真的正确?假设有人使用了一些技巧来发布不正确的数据,这可能会破坏其他页面上的代码,因为其他一些代码可能希望电子邮件采用“***@somedomain.com”格式?我当然认为这是一个合理的问题,但答案是“是”。无法发送某些用户邮件(由于地址无效或任何其他原因)只会影响该用户。然而,我可以想象在其他情况下,无效输入会影响其他用户或整个系统行为,在这些情况下,是的,重新检查输入。好吧,实际上,我几乎不同意你的第一部分。对我来说,这看起来不够防御性。。。所以,我的问题是,如果我们需要在js端和服务器端进行双重检查,是否有一种只编写一次简单代码的好方法?首先,我的问题是如何在jav和javascript端“编写一次代码”;然而,在验证方面,我确实认为双方在大多数情况下都需要检查。它们的用途不同,客户端检查是为了用户友好,而服务器端则是为了保护系统不受任何原因造成的脏数据的影响;重复检查不是浪费;事实上,这正是我提出这个问题的原因,因为我认为双重检查是出于不同的目的。您的答案更多的是根据具体情况进行单边检查,而不是提供“一次写入”解决方案。为了将这一对话带入2015年,双方的验证现在非常普遍,因为越来越多的功能被移入客户端。这是有道理的;后端必须确保有效性,但前端通常至少需要一些相同的有效性检查。