0

データを取得するときのように、Java経由でページのコンテンツを取得するときにページが提供する結果を使用して、Javaでログインシステムを作成しようとしています

    http://localhost/java.php?un=dubking&password=password

ログイン資格情報が正しい場合、そのページはhtmlとして「true」のみを表示しますが、ifステートメントで実際に「true」を含むそのページのデータを持つ配列を使用すると、ifステートメントは機能しません。私が間違ったことをしたのですか、それともJavaでは不可能ですか?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
class test2 {
    public void calc() {
        try { 
            URL yahoo = new URL("http://localhost/java.php?un=" + username + "&password=" + password); 
            BufferedReader in = new BufferedReader( 
                    new InputStreamReader(yahoo.openStream())); 
            String inputLine; 

            while ((inputLine = in.readLine()) != null) { 
                // Process each line.
                String html = inputLine;
                if (html == "true") {
                    System.out.print("You have successfully logged in.");
                } else {
                    if (html == "false") {
                        System.out.println("Wrong username or password.");
                    }
                    if (html != "true" && html != "false") {

                        System.out.println("something went wrong.");
                        System.out.println(html);
                    }
                }
            } 
            in.close(); 

        } catch (MalformedURLException me) { 
            System.out.println(me); 

        } catch (IOException ioe) { 
            System.out.println(ioe); 
        } 

    }
}
4

2 に答える 2

4

内容String#equalsの比較にご利用ください。String演算子は==オブジェクト参照を比較します。String返される fromは、アプリケーションで使用されてBufferedReader#readLineいるインターンとは異なるオブジェクトになりStringsます (例: "true"、"false")。

equalsIgnoreCase場合に備えて、バリエーションを処理するために使用することをお勧めします。さらに、Joda 条件は、すべきことから保護しNullPointerExceptionますhtmlnull

if ("true".equalsIgnoreCase(html)) {
于 2013-07-07T22:38:30.983 に答える
0

== と != を使用して文字列の等価性をチェックしようとしていますが、うまくいきません。代わりに == を .equals に変更する必要があります。このような

"true".equals(html)

または

!"true".equals(html)
于 2013-07-07T22:38:41.500 に答える