Java 管理jsp mvc登录和注册表单
我有这个验证函数。它根据数据库验证登录表单。 java是否测试表达式Java 管理jsp mvc登录和注册表单,java,forms,jsp,model-view-controller,jakarta-ee,Java,Forms,Jsp,Model View Controller,Jakarta Ee,我有这个验证函数。它根据数据库验证登录表单。 java是否测试表达式username.isEmpty()和password.isEmpty()两次?前一种 如果((!username.isEmpty())&&(!password.isEmpty()),则在 if(username.isEmpty()) error.addError("username", "Username is mandatory."); if(password.isEmpty()) error.addErro
username.isEmpty()
和password.isEmpty()
两次?前一种
如果((!username.isEmpty())&&(!password.isEmpty())
,则在
if(username.isEmpty())
error.addError("username", "Username is mandatory.");
if(password.isEmpty())
error.addError("password", "Password is mandatory.");
?
是否有任何内部机制“存储”第一次测试的结果,从而避免重做相同的测试?
我希望保持性能,同时,我必须填充错误bean。
如果我想用更多的检查来放置更多的字段,并用正则表达式(例如注册表)进行复杂化,该怎么办?
这个功能还可以吗?
我想遵循的基本原则是:只有通过所有测试,才能将true指定给标志(或输入代码)。否则,它将为false(默认情况下)。
反之亦然(默认情况下标记为true,可能会变为false)
如果我的英语听起来不好,请随时纠正。谢谢
public boolean validate(FormBean bean, FormErrorBean error)
{
// the validation flag
boolean valid = false;
if (bean instanceof LoginFormBean)
{
// check not null
if (!bean.isEmpty())
{
String username = ((LoginFormBean) bean).getUsername();
String password = ((LoginFormBean) bean).getPassword();
if ((!username.isEmpty()) && (!password.isEmpty()))
{
// create the DAO
UserDao uDao = new UserDao();
// check the user
valid = uDao.checkUser((LoginFormBean) bean);
// set the validation status of the bean
((LoginFormBean) bean).setValid(valid);
// add the error, if any
if (!valid)
error.addError("Either the username is not valid or the password is wrong.");
}
else
{
if(username.isEmpty())
error.addError("username", "Username is mandatory.");
if(password.isEmpty())
error.addError("password", "Password is mandatory.");
}
}
else
{
// add the empty error...
error.addError("Both the username and password are missing.");
}
}
return valid;
}
据我所知,测试表达式将运行两次 如果要多次运行username.isEmpty()和password.isEmpty(),可以先将它们存储为布尔值。理论上,这可能会为您节省少量的开销。然而,考虑到您可能不会多次需要该结果,任何性能提升都可以忽略不计 如果您使用正则表达式添加更多的唯一检查,我无法想象您需要重用它们的结果。我认为你的代码结构很好 java是否测试username.isEmpty()和 password.isEmpty()两次 如果您调用相同的方法2次,则为“是” 是否存在“存储”第一次测试的内部机制 结果,避免重复相同的测试 您可以尝试将结果存储到两个不同的布尔值中(每个值1位): 并在测试中使用它们 如果我想把更多的字段和更多的检查放在一起呢 是否使用正则表达式(例如注册表)?那会吗 功能还可以吗 如果您想推动自己的发展,请尝试使用SpringWeb或ApacheStruts进行表单验证和身份验证方法 我想遵循的基本原则是: 仅当我通过all时,才将true指定给标志(或输入一段代码) 测试。否则,它将为false(默认情况下)。不是恶习 versa(默认情况下标记为true,可能会变为false) 我想你的下一步将是:“该死的,我需要的不仅仅是一面旗帜。我需要用户ID、姓名和姓氏……”。因此,请尝试使用一些模式(如DTO来存储所需内容,并通过应用程序级别传输数据) 我建议您注意您的代码: 如果(!bean.isEmpty())、username.isEmpty()等等 因为可以使用NullPointerException。在尝试访问对象之前,应该确保对象不为null 希望有帮助 再见
boolean isPasswordEmpty = password.isEmpty();
boolean isUsernameEmpty = username.isEmpty();