0

サービスメソッドを呼び出すサンプルサーブレットクラスを書いています。サービス メソッドは、ユーザー名とパスワードを検証する必要があります。

public static void main(String[] args) {

        System.out.println(new UserServiceImpl().login(name, password));
    }
    public String login(String username, String password) {
        StringBuilder validUser = new StringBuilder();
        if(username == null || password == null){           
            return invalidUser();
        }
        if((validUsers.contains(name) && validPassword.contains(password))){    
            validUser.append("<user>");
            validUser.append("<username>");
            validUser.append(username);
            validUser.append("</username>");
            validUser.append("<firstname>");
            validUser.append("Mr M");
            validUser.append("</firstname>");
            validUser.append("<lastname>");
            validUser.append("Tom");
            validUser.append("</lastname>");
            validUser.append("</user>");
            return validUser.toString();
        }
        else{
            return invalidUser();
        }
    }
    private String invalidUser() {
         StringBuilder invalidUser = new StringBuilder();
         invalidUser.append("<status>");
         invalidUser.append("<code>");
         invalidUser.append("401");
         invalidUser.append("</code>");
         invalidUser.append("<message>");
         invalidUser.append("Invalid Credentials");
         invalidUser.append("</message>");
         invalidUser.append("</status>");        
         return invalidUser.toString();
    }

フォームの送信は LoginServlet をトリガーする必要があり、そこからユーザー名とパスワードが UserService.login に渡されます。ユーザー名とパスワードが検証された場合 (if ステートメントに問題がない場合)、ユーザー xml 文字列が返されます。

<user><username></username><firstname></firstname><lastname></lastname></user>

それ以外の場合は、ステータス xml 文字列が返されます。

<status><code>401</code><message>Invalid Credentials</message></status>

この場合、 StringBuilder を使用して上記のフォーマットを作成しようとしています。私が試すことができる別のアプローチはありますか?JaxB と Sax と Dom のように、上記のフォーマットにするのはどれが良いですか? この場合、文字列ビルダーが最適ですか?

私のサーブレットクラスでは、ビューページ、つまり有効なユーザーの場合はウェルカムページ、そうでない場合はエラーの詳細を含むエラーメッセージページに戻る必要があります。

4

2 に答える 2

0

SAX は一方向パーサーです。SA​​X では XML のみを読み取ることができます。XML を広範囲に使用したい場合を除き、JAXB は多すぎます。DOM は優れた代替手段ですが、代替手段にすぎません。単純な XML の StringBuilder はより単純であり、正しい XML を生成する限り完璧です。

于 2013-07-27T05:36:23.827 に答える