知道为什么isValidPassword()方法没有执行验证。即使密码长度小于6或密码,特殊字符也无法验证。
if(!SoccerUtils.isValidPassword(password)){
out.print("<p style=\"color:red\">Password must be at least 6 characters long</p>");
RequestDispatcher rd = request.getRequestDispatcher("register.jsp");
rd.include(request, response);
} else{
//Do some action here
}
这里我调用'isValidPassword()'方法,在这个方法中,我检查两个条件(a)如果密码长度小于6 然后返回false,否则为true。 类似地(b)如果'password'没有字母或Digit返回false,否则返回true。两种情况都没有验证。我可以在isValidPassword()中找到两个案例的一个回报吗?
public static boolean isValidPassword(String password) {
if (password.length()< 6 ) {
return false;
}
for(int i=0; i<password.length(); i++) {
if(!Character.isLetterOrDigit((password.charAt(i)))) {
return false;
}
}
return true;
}
答案 0 :(得分:1)
同样(b)如果密码是&#39;没有字母或数字返回false,否则返回true。
您所检查的内容与此 1 的要求不同。您的代码实际上是在检查所有字符是字母还是数字。
要了解您的代码正在做什么,我建议您使用&#34; hand execute&#34;它,或使用调试器来观察它在做什么。
尝试使用此示例:&#34; Passw0rd!&#34;,(通过我的阅读要求)应该是有效的密码。 (它的长度> 6,它包含一个字母和一个数字。)
我可以在isValidPassword()中找到两个案例的一个回复吗?
你可以...但它会使代码更复杂!
1 - 我怀疑您错误地复制了该要求。要求(b)在语法上是不正确的。这种语法错误引起了句子实际含义的模糊性......用英语。