我有以下登录代码。
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语句。
答案 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)) {