サービスメソッドを呼び出すサンプルサーブレットクラスを書いています。サービス メソッドは、ユーザー名とパスワードを検証する必要があります。
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 のように、上記のフォーマットにするのはどれが良いですか? この場合、文字列ビルダーが最適ですか?
私のサーブレットクラスでは、ビューページ、つまり有効なユーザーの場合はウェルカムページ、そうでない場合はエラーの詳細を含むエラーメッセージページに戻る必要があります。