将键入的文本转换为小写

我有一个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!


} %>