将键入的文本转换为小写
我有一个index.jsp
[剪断]
Howdy,
Ooops, one or more fields are empty. Please fill everything out!!
Incorrect Userdata!
[剪断]
现在,例如globalname是小写的“webeng”。 人们可以输入“WebEng”,“webENG”,“WEBENG”及其变体。
我需要键入的字符串转换为小写。 不知何故
String newname = name.toLowerCase(); String newpass = pass.toLowerCase();
不管用。 有人有任何想法吗?
这就是Eclipse在我使用时告诉我的
Howdy,
One or more fields are empty!
Incorrect Userdata!
Eclipse: http : //i.imagehost.org/0277/2009-11-15_19_34_00.png
你的代码逻辑很奇怪。 Scriptlet也不会使测试更容易。 这是一个真正的Java类的SSCCE ,可以启动并简化测试:
public class Test { public static void main(String[] args) throws Exception { String user = "WeBeNg"; // Change this as if it is user input. String pass = "2009"; // Change this as if it is user input. String expectedUser = "webeng"; String expectedPass = "2009"; if (user == null || pass == null || user.isEmpty() || pass.isEmpty()) { System.out.println("Please enter both username and password."); } else if (user.equalsIgnoreCase(expectedUser) && pass.equals(expectedPass)) { System.out.println("Welcome " + user); } else { System.out.println("Unknown login."); } } }
希望这可以帮助。
编辑#1 :请不要发布截图。 在代码块中共享exception和堆栈跟踪。 顺便提一下,不是来自Eclipse。 它来自Tomcat。 此外,有问题的例外(NullPointerException)是相当自我解释的。 您访问了一个实际为null的对象引用。
SomeObject someObject = null; someObject.doSomething(); // Fails with NPE. someObject = new SomeObject(); someObject.doSomething(); // Succes.
您需要先进行空检查,例如
if (someObject != null) { someObject.doSomething(); // Succes. }
编辑#2我还建议您了解Java中的运算符,运算符优先级和表达式分组。 看,以下不是“逻辑”
if (name !=null | pass!=null && name.equals("") | pass.equals(""))
这是一个很好的教程,首先要了解这一点: http : //java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html祝你好运。
您可以使用compareToIgnoreCase,而不必自己进行转换。
你似乎用| 而不是|| 。 这是故意的吗?
这是equalsIgnoreCase。 除非你真的不想快捷方式或与|
运营商通常使用||
更安全 。 我也不愿意像BalusC的回答那样成功,对于“登录”用户的默认条件有些不安。
<% String name = request.getParameter("name"); String pass = request.getParameter("pass"); String globalname = "webeng"; String globalpass = "2009"; if (name ==null || pass==null || name.equals("") || pass.equals("")) { // You can use StringUtils.isBlank here instead if you have it available to you %>
Ooops, one or more fields are empty. Please fill everything out!!
<% } else if (name.equalsIgnoreCase(globalname) && pass.equalsIgnoreCase(globalpass)) { %>
Howdy, <%= request.getParameter("name") %>
<% } else { %>
Incorrect Userdata!
} %>