私は昨日Spring MVCを学び始めました。そして、私はSpring MVC(または他のフレームワークかもしれない)で、1つのWebアプリケーションで多くのサーブレットを持つことができると考えています。
サーブレットには、httpリクエストがある場合に一致するurlパターンがあります。一方、@RequestMappingを使用してHTTPリクエストのマッピングを行うことができます。
なぜ、どのような場合に複数のサーブレットを使用すべきかという疑問がありますか?
そのためのベストプラクティスは何ですか?
ありがとうございます。なぜ、どのような場合には、spring mvcではシングルサーブレットの代わりに複数のサーブレットを使用する必要がありますか?
3
A
答えて
2
は通常、Spring MVCのでは、次のようにweb.xml内の単一のサーブレットを宣言:
<servlet>
<servlet-name>ActivityReplicator</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ActivityReplicator</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
このサーブレットは、アプリケーションにすべてのリクエストを処理するために、右のコントローラーにそれらをディスパッチする責任を負うことになります。
単一のサーブレットを使用すると、web.xmlで実行する必要がある設定が制限されます。 Spring Controllerは、DispatcherServletからのリダイレクションを処理するために特別に構築されています。 Nathanが説明したように、コントローラーの構成はあまり複雑ではありません。
あなたのアプリケーションで見つかったすべてのドメインに対してコントローラを提案します。例えば、ユーザー管理のための1つのコントローラー、フォーラムのポスト管理のためのもう1つのコントローラーです。 Springを使ってRestfullコントローラを読むと、実装するコントローラの数を知ることができます。
0
あなたは、このようなジャージーのようなものではなく、春のMVCのverbosenessで実施する方がはるかに簡単である開発者向けAPI RESTfulなサービスとして何かをしたい場合は、複数のサーブレットを持つことができます。この場合、Jerseyを使用するAPIサービス用のサーブレットと、フロントエンドのWebサイトを処理するSpringサーブレットがあります。
関連する問題
- 1. なぜオーバーライドequals()メソッドのreturn文は、代わりの&&と||を使用する必要がありますか?
- 2. どのような場合にクライアントをより正確なURIにリダイレクトする必要がありますか
- 3. Android:いつ/なぜフラグメントの代わりにFrameLayoutを使用する必要がありますか?
- 4. TFilenameの代わりにStringを使用する必要がありますか?
- 5. AddPortの代わりに何を使用する必要がありますか?
- 6. com.google.appengine.repackaged *の代わりに何を使用する必要がありますか?
- 7. SpringフレンドリーなWorkFlowを実行する必要がある場合は、どのようなOSSプロジェクトを検討する必要がありますか?
- 8. なぜ文中の他の場所でも値が使用されない場合、i ++の代わりに++ iを使用するのはなぜですか?
- 9. mod_wsgiデーモンモードコードの代わりに "site"を使用する必要があります
- 10. そのような場合、どのタイプのUML図を使用する必要がありますか?
- 11. ANDの代わりに&&を使用すると、スクリプトにどのような違いがありますか?
- 12. コンテンツ比較にiThenticateサービスを使用する代わりに、どのような方法がありますか?
- 13. thread.run()の代わりにthread.start()を呼び出す必要があるのはなぜですか?
- 14. どのような場合にイベントから切り離す必要がありますか?
- 15. なぜfprintfを使用する場合、インライン関数を静的宣言する必要がありますか?
- 16. 複数の継承が必要なシナリオはありますか?
- 17. ディメンションを処理する代わりにプロアクティブなキャッシュを使用する必要がありますか?
- 18. どのようなVisualStateManagerを使用する必要がありますか?
- 19. `T 'の代わりに` typename T`を書く必要があるのはなぜですか?
- 20. スタティックセルの代わりにカスタムテーブルビューセルをプロトタイプセルにする必要がありますか?
- 21. phpMyAdminを使用する代わりにどのような方法がありますか?
- 22. なぜAssembly.LoadFromの代わりにAssembly.LoadFileを使用しますか?
- 23. DBとAPIだけが必要な場合、RoRの代わりにSinatraを使用するメリット
- 24. なぜ補間の代わりにログに複数の引数を使用するのですか?
- 25. ++ varを使用する必要がある場合はありますか?
- 26. RESTfull APIの場合はCORSを使用する必要がありますか?
- 27. JavaにNullReferenceExceptionの代わりにNullPointerExceptionがあるのはなぜですか?
- 28. Django複雑な照会(組合が必要な場合があります)
- 29. RELEASEの代わりにNDEBUGを使用するのはなぜですか?
- 30. 'success'関数を使用する代わりにjQuery.ajaxのresponseTextを返す必要があります
代わりに、代わりに単一のサーブレットを使用する必要がありますか? しかし、それはまだ明らかではありません(私のために)、なぜ複数のサーブレットを使用していません。 – guiltry
@guiltry:春MVCのディスパッチサーブレットを使用すると、代わりのコントローラを使用することができますので、あなたは、複数のサーブレットを使用していない、とのコントローラはそれほど苦痛に対処するためです。 –
単一のサーブレットを使用すると、web.xmlで行わなければならない設定が制限されます。春のコントローラは、特別のDispatcherServletからのリダイレクトを処理するために構築されています。 Nathanが説明したように、コントローラーの構成はあまり複雑ではありません。 –