将键入的文本转换为小写

Gru*_*ear 1 java string jsp lowercase

我有一个index.jsp

[剪断]

<% 
  String name = request.getParameter("name");
  String pass = request.getParameter("pass");
  String globalname = "webeng";
  String globalpass = "2009";
  if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
   {
   %>
    <hr />
    <p><b>Howdy, <%= request.getParameter("name") %></b></p>
    <hr />
<% }
  else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
  {
  %>
    <hr />
    <p><b>Ooops, one or more fields are empty. Please fill everything out!!</b></p>
    <hr />
<% }
  else if (name !=null | pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
  {
  %>
    <hr />
    <p><b>Incorrect Userdata!</b></p>
    <hr />
<% }
  else{
  }
%>
Run Code Online (Sandbox Code Playgroud)

[剪断]

现在,例如globalname是小写的"webeng".人们可以输入"WebEng","webENG","WEBENG"及其变体.

我需要键入的字符串转换为小写.不知何故

String newname = name.toLowerCase();
String newpass = pass.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

不管用.有人知道吗?

这就是Eclipse在我使用时告诉我的

<% 
      String name = request.getParameter("name");
      String pass = request.getParameter("pass");
      String globalname = "webeng";
      String globalpass = "2009";
      String newname = name.toLowerCase();
      String newpass = pass.toLowerCase();

       if (name !=null && pass!=null && name.equals(globalname) && pass.equals(globalpass))
       {
       %>
        <hr />
        <p><b>Howdy, <%= request.getParameter("name") %></b></p>
        <hr />
    <% }
      else if (name !=null | pass!=null && name.equals("") | pass.equals(""))
      {
      %>
        <hr />
        <p><b>One or more fields are empty!</b></p>
        <hr />
    <% }
      else if (name !=null && pass!=null && !name.equals(globalname) | !pass.equals(globalpass))
      {
      %>
        <hr />
        <p><b>Incorrect Userdata!</b></p>
        <hr />
    <% }
      else{
      }
    %>
Run Code Online (Sandbox Code Playgroud)

Eclipse:http://i.imagehost.org/0277/2009-11-15_19_34_00.png

Bal*_*usC 5

你的代码逻辑很奇怪.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.");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

编辑#1:请不要发布截图.在代码块中对异常和堆栈跟踪进行Copypaste.顺便提一下,不是来自Eclipse.它来自Tomcat.此外,有问题的例外(NullPointerException)是相当自我解释的.您访问了一个实际为null的对象引用.

SomeObject someObject = null;
someObject.doSomething(); // Fails with NPE.
someObject = new SomeObject();
someObject.doSomething(); // Succes.
Run Code Online (Sandbox Code Playgroud)

您需要先进行空检查,例如

if (someObject != null) {
    someObject.doSomething(); // Succes.
} 
Run Code Online (Sandbox Code Playgroud)

编辑#2我还建议您了解Java中的运算符,运算符优先级和表达式分组.看,以下不是"逻辑"

if (name !=null | pass!=null && name.equals("") | pass.equals(""))
Run Code Online (Sandbox Code Playgroud)

这是一个很好的教程,首先要了解这一点:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html祝你好运.