我的jsp页面只执行else语句

时间:2017-06-29 07:19:36

标签: java jsp if-statement

我有以下登录代码。

if (uname == "Abigail" && password=="Abby14"){
    response.sendRedirect("http://localhost:8080/Practical_4/member.jsp");
     }

 else {
   response.sendRedirect("http://localhost:8080/Practical_4/index.html");

 }

我意识到我的jsp页面将if语句看作是else语句,只执行else语句。

3 个答案:

答案 0 :(得分:1)

你所做的是比较存储字符串的地址而不是字符串它们自己在某些情况下,java会将相同的字符串存储在同一个地址中,但是你不能指望它。这是一个应该解释问题的代码示例

public static void main(String... args) {
    String a = "a";
    String b = new String("a");
    String c = "a";
    System.out.println(a==b); // false
    System.out.println(a==c); //true
    System.out.println(a.equals(b)); // true
}

所以buttom行总是使用等于==

的insterad

答案 1 :(得分:0)

使用equals进行字符串比较。

 if (uname.equals("Abigail") && password.equals("Abby14")){
        response.sendRedirect("http://localhost:8080/Practical_4/member.jsp");
         }

     else {
       response.sendRedirect("http://localhost:8080/Practical_4/index.html");

     }

希望这有帮助。

答案 2 :(得分:0)

更改为使用equals并更改为order以防止空指针

if ("Abigail".equals(uname) && "Abby14".equals(password)) {