私はnetbeans eコマースのチュートリアルに従っており、それらは複数のURLを扱うようにセットアップされたintroduced a ControllerServletです。彼らはこれを行う方法は、大きなif then else if
声明持つことが基本的であるしかし複数のURLを扱うコントローラサーブレットの推奨アプローチは何ですか?
:
String userPath = request.getServletPath();
// if category page is requested
if (userPath.equals("/category")) {
// TODO: Implement category request
// if cart page is requested
} else if (userPath.equals("/viewCart")) {
// TODO: Implement cart page request
userPath = "/cart";
// if checkout page is requested
} else if (userPath.equals("/checkout")) {
// TODO: Implement checkout page request
// if user switches language
} else if (userPath.equals("/chooseLanguage")) {
// TODO: Implement language request
}
は、単一のサーブレットに複数のURLを処理するこれは本当にお勧めしますか?このアプローチは恐ろしく、管理が難しいようです。
これをきれいに処理する明白な方法がありませんか?
これは本当に恐ろしいことです。本当のまともなフロントコントローラーははるかに複雑です。彼らは明らかに初心者のために簡単にしたいと思った。このチュートリアルでは、別々のサーブレット(サーブレット3.0以降、XML構成を持たない「@ WebServlet」アノテーションでスタンドアロンミニコントローラとしてサーブレットを登録するのは簡単です)を使用しました。この関連する質問/回答もご覧ください:http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications – BalusC
@BalusCありがとうございます。サンプルにURLごとに1つのサーブレットを作成しておく必要があることに同意し、リンクされた回答は問題の解決に関する最初のアイデアを再確認しました。とても有難い。 –