2016-04-27 6 views
1

ウェブサイトの多くのページを扱う際にサーブレットを扱う際のベストプラクティスは何ですか?サーブレットでのほとんどのGETリクエストは、単に新しいJSPページを返します。私は2つのアプローチの考えていた:サーブレット内に1つのサーブレットが存在するか、または複数のパスを処理しますか?

  • は、ホームページ、登録ページ用registerservlet、ログインページのがloginservletためhomeservlet例えばwebisteで各パスのサーブレットを割り当てるなど

  • は数が少ないです複数のパスを処理し、それに応じて処理するサーブレットの例ユーザの登録とログインの仕事をすることができるUserServlet。しかし、私はこのアプローチがif文の多くにつながり、かなり手に負えないかもしれないと考えました。理想的なのはサーブレット内のメソッドを各パスに割り当てることです(Laravelと同じように)。

+1

spring-mvcのようなサーブレットディスパッチでフレームワークを使用するのが最良の選択です。コントローラーを書くだけで、このことについては考えないでください。 – AdamSkywalker

+1

ベストプラクティスについて質問しないでください。彼らは事実上常に意見に基づいています。 – Kayaman

答えて

1

よくあることですが、最適なものは、提供する必要があるコンテキストと機能によって異なります。 多くの場合、単一のサーブレットから複数のパスを処理できるようにすると、複数のケースに対して1つのサーブレットしか開発できないため、より効率的であると思います。

  1. パスのグループによって提供される機能は、「類似」であり、おそらく考慮して取ることによって、単一のサーブレットで処理することができる単一のサーブレットへのパスのグループをマッピング は、次の場合に好ましいであろう実際のパス
  2. 提供されるべき機能は、サーブレットの呼び出しに使用された実際のパスとは無関係です。それは、サーブレットごとに単一のパスを割り当てることは有益であろうことはケースかもしれないが

  1. サーブレットの機能は、単一のパスが提供されなければなりません。
  2. 異なるパスの機能は、それらを実装するために異なるサーブレットクラスを必要とするほど十分に異なります。
1

通常、私は各パスごとにサーブレットを作成します。私の同僚はちょうど反対のやり方です。自分の好みにもよると思います。私は自分のやり方を好むのですが、私が探しているサーブレットを見つけることができ、あなたのクラスは何千ものLOCを持たないので、それは明快さの側面だと思います。

2つ目のアプローチの利点は、同じサーブレット内のメソッドをより簡単に呼び出すことができることです。彼らはしばしばお互いに関係しています!サーブレットが分離されている場合は、別のサーブレットにその要求を転送する必要があります。これはパフォーマンスが低下します。

もう1つのアプローチは、サーブレットディスパッチ(@AdamSkywalkerでも言及されます)です。

-1

マッピングにジョーカー文字を使用できます。例えば;

* .jsp - >クライアントがJSPページを要求したとき、サーブレットはハンドル要求になります。

+0

このヒントは、マッピングを行うのに役立ちますが、質問は異なっていました。 –

関連する問題