2017-02-14 6 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

を期待できない結果を得ますそれらが同じオブジェクトかどうかをチェックしています( '==')。 2つのオブジェクトが等しいかどうかを知りたい場合は 'equals()'を使います(ここで、「等しい」はメソッドの具体的な実装を意味します)。 'equals()'の 'String'実装では、内容が同じ文字列であれば等しいとみなされます。 – 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

関連する問題