2

私は、「描画」ページと「評価」ページの 2 つのページで構成される Java Web アプリケーションの作成を任されました。私はEclipseで開発しています。

「描画」ページは、次のプロセスを容易にします。

  • フォームからユーザー入力を受け取る
  • サーブレットを使用して、バックグラウンドでモデルを構築する
  • モデルをクライアント側のアプレット (おそらく JSON 経由) に送信して、視覚的にレンダリングします。

「評価」ページは次のようになります。

  • 同様のフォームからユーザー入力を取得して、サーブレットを使用して同様のオブジェクト (同じクラス) を構築する
  • サーブレットでアルゴリズムを使用してモデルを実行し、結果を画面に表示します。

ページは比較的独立している可能性があります。

私の質問は、この組み合わせを実装するにはどうすればよいですか?

私はサーブレット開発と Spring MVC/Webflow フレームワークに精通していますが、専門家ではありません。ただし、Spring はこの単純なアプリケーションには過剰であると推測しており、複数の主要な機能を持つサーブレットを実装したことはありません。

doGet/doPost メソッドに条件付きロジックがあり、リクエストの URL に基づいて操作を実行する HttpServlet を作成する必要がありますか?

2 つの別個のサーブレットを作成する必要がありますか?

もしそうなら、Eclipse で 2 つの別々のプロジェクトを作成しますか、それとも web.xml に登録された 2 つのサーブレットを含む 1 つのプロジェクトだけを作成しますか? まったく違うことをするべきですか?

私はコードを探しているわけではありませんが、このタイプのアプリケーションにアプローチする方法をより深く理解したいと思っています。

4

2 に答える 2

2

私は、ドミトリーの意見に反対の意見を述べます。単純なサーブレットの書き方を知っていることは素晴らしいことだと思いますが、ビジネス用のコードを書くことになると、Spring MCV を使用した方がよいと思います。主な理由は次のとおりです。

  • すでに Spring MVC の経験があるため、学習曲線はありません
  • 要件は単純に見えますが、私の経験では、このような Web プロジェクトは当初の仕様をはるかに超えて急速に成長し、その時点で Spring MVC を使用したいと思うでしょう。
  • 通常は Spring MVC によって処理されるサーブレットの機能をコーディングして保守する必要があります。私は、この言葉が大好きです。「あなたがまだ考えもしていなかった問題を解決した」という言葉が大好きです。
  • 記述するコードのすべての行にはバグが含まれる可能性があります。記述するコードの量を減らすことで、バグのリスクを軽減できます
  • Spring MVC は、好きな/必要な機能をほとんどまたはできるだけ多く使用できるように設計されています。アノテーションを使用すると、驚くほど少ない数のコード/xml 行でシンプルなアプリを起動して実行できます
  • Spring MVC を使用すると、テストがはるかに簡単になります
  • Spring MVC は、他のプログラマーが既に知っている規則に従います。あなたが仕事を辞めた場合、誰かがすぐにそれを拾うことができます。OTOH 単純なサーブレットをコーディングする場合、さまざまな方法でそれを行うことができ、他の誰かのために維持するのが難しくなる可能性があります
  • 最新のハードウェア/OS では、Spring MVC を追加することでプロジェクトに追加される余分なメモリ/オーバーヘッドはごくわずかです。128KB のメモリでサーバーを実行することはなくなりましたが、一部の人々はまだ私たちの考え方を持っています。ベンチマークするかどうか疑わしい場合は、早期に最適化しないでください。
于 2012-10-30T23:50:37.463 に答える
1

Spring (またはその他の MVC) フレームワークは、これには間違いなく過剰です。サーブレットは問題なく機能します。

実際のロジックがすべて別のクラスにあることを確認してください。サーブレットが行う必要があるのは、ユーザー入力を読み取るために必要な処理を適用し、サービス クラスで適切なメソッドを呼び出すことだけです。基本的にWeb特有の部分は最小限にとどめます。

それが 2 つの別個のサーブレットであろうと、要求パスをオンにするサーブレットであろうと、実際には問題ではありません。メソッドへのリクエストのマッピングは、サーブレットが行うように設計されているためです。

Eclipse で別のプロジェクトを作成する必要はありません。サーブレットを web.xml で (または Servlet 3.0 の場合は注釈を付けて) 定義するだけです。

正しい軌道に乗っているようですね。

于 2012-10-30T20:31:50.290 に答える