2017-02-14 58 views
0

У меня есть атрибут сеанса и ту же строку:Как сравнить атрибут сеанса и строки Java

out.println("<br>"); 
    out.println(request.getSession().getAttribute("token").toString()); 
    out.println("<br>"); 
    out.println(hidden_token); 
    out.println("<br>"); 
    out.println(request.getSession().getAttribute("token").toString() == hidden_token); 

Но я получаю результат, который не ожидается

07581d61db9213eb4549b12388f8c106 
07581d61db9213eb4549b12388f8c106 
false 
+3

Вы проверяете, являются ли они одним и тем же объектом ('=='). Используйте 'equals()', если вы хотите увидеть, являются ли два объекта «равными» (где «equal» означает, что означает конкретная реализация метода). В реализации 'String'' equals() 'они считаются равными, если их содержимое представляет собой одну и ту же последовательность символов. – SantiBailors

+0

Тот же результат с равными :( – Nesquik27

+0

Если equals не работает, попробуйте обрезать их: 'request.getSession(). GetAttribute (" token "). ToString(). Trim(). Equals (hidden_token.trim()) ' –

ответ

0

Использование

request.getSession().getAttribute("token").toString().equals(hidden_token) 
+1

Не могли бы вы объяснить, почему использовать метод 'equals'? Или предоставить краткое сравнение между' equals' и '=='. кода без комментариев не пригодится. – mrdaliri