1

私は Java Web 開発に不慣れで、頭の中に多くの混乱があります。Java で小さなプロジェクトを開発しようとしていますが、MVC パターンのコンポーネントをどのように接続すればよいかわかりません。

DB と対話する DAO があり、通常の CRUD 操作をかなりうまく行うことができます。DAO は、DB 内のテーブルを反映するパッケージ モデルで動作します。O反対側には、WEB-INFフォルダー内にJSPページがあります。

サーブレットhttps://stackoverflow.com/tags/servlets/infoに関するこの情報タグを読みましたが、うまくいきません。ここで説明したように: MVC パターンを使用して JSP/サーブレット Web アプリを開発する方法は?

MVC パターンは、

  1. モデル(Java クラス / Bean): DB データを反映します (プロパティ、getter/setter メソッドを使用)。
  2. ここで (JSP ページ)、私の HTML、プレゼンテーション レベルを表示します
  3. URL を JSP ページにマップするコントローラー(サーブレット) ですね。

では、モデルが機能し、ビューが機能し、コントローラーは何をすべきでしょうか? 実際に私はこのエラーが発生します:

HTTP ステータス 404 - /crm/hello.jsp タイプ。状況報告メッセージ。/crm/hello.jsp の説明。要求されたリソースは利用できません。

しかし、WEB-INF 内のリソース (hello.jsp ファイル) は存在します。コードのスニペットは次のとおりです。

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        // Preprocess request: we actually don't need to do any business stuff, so just display JSP.
        request.getRequestDispatcher("hello.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        // Postprocess request: gather and validate submitted data and display result in same JSP.
        request.getRequestDispatcher("hello.jsp").forward(request, response);
    }
}

@WebServlet 表記を使用していますが、これは web.xml を置き換えるものですよね? 私も答えを読みました: Design Patterns web based applicationsとそこで説明されているように:

リクエスト (アクション) ベースの MVC: これは実装が最も簡単です。(ビジネス) モデルは、HttpServletRequest および HttpServletResponse オブジェクトと直接連携します。リクエストパラメーターを(ほとんど)自分で収集、変換、および検証する必要があります。ビューはプレーンなバニラ HTML/CSS/JS で表すことができ、リクエスト間で状態を維持しません。これは、Spring MVC、Struts、および Stripes がどのように機能するかです。

各 URL を JSP ページとリクエスト/レスポンスを含むサーブレットにマップする必要がありますか、それともすべてのリクエスト/レスポンスを処理するサーブレットが 1 つ必要ですか セッションをどこでトレースすればよいですか? クッキーはどこに設定すればよいですか? 業務フローはどこにすればいいですか?たとえば、Web フォームからデータベースにデータを挿入したり、DB データを JSP ページに表示したりしますか?

点をつなげようとしていますが、誰かが欠けています。問題は、モデルとビューがコントローラーとどのように対話するかです。例を挙げていただけますか?

4

0 に答える 0