1. ホーム
  2. Web プログラミング
  3. JSP プログラミング

jspで実装されたシンプルなmvcパターンの例

2022-01-19 23:18:47

この記事では、シンプルなmvcパターンのjsp実装の例について説明します。以下のように参考までに共有します。

jsp : Javaサーブレットページ

MVCとは、Model View Controllerの頭文字をとったもので、ビジネスロジック、データ、インターフェース表示を分離してコードを整理するソフトウェアデザインパラダイムです。MVCは、従来の入力、処理、出力機能を論理的なGUI構造にマッピングするために独自に開発された。

デモの例

マッピングプロセス

/WEB-INF/web.xml

/********************************************************************************
 * ImportError: No module named 'serial'
 * 说明:
 * 由于系统默认自带了2.7的,后来自己安装了3.5版本的Python,结果PyCharm中总是找
 * 不到serial。
 *
 * 2017-9-20 深圳 龙华樟坑村 曾剑锋
 *******************************************************************************/

一、参考文档:
    1. pyserial, ImportError: Kein Modul namens serial
        https://stackoverflow.com/questions/33086281/pyserial-importerror-no-module-named-serial

二、解决方法:
    1. Python2
        sudo einfach_installieren pyserial
    2. Python3 
        apt install python3-serial

ここで、サーブレットはブラウザのリクエストをインターセプトし、servlet-mappingのurl-patternルールにマッチしたリクエストをservlet-nameに対応するサーブレットに渡して処理します。

一度設定すると、プロジェクト下の index.do にアクセスすると、web.app.controller.IndexController クラスにマッピングされるようになります。

IndexController.java

package web.app.controller;
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("/IndexController")
public class IndexController extends HttpServlet
{
  /**
   * 
   *  private static final long serialVersionUID = -8227194254553105913L;
  @Override
  public void doGet(HttpServletRequest request,HttpServletResponse response)
       throws ServletException, IOException 
  try{
    try{
      response.setCharacterEncoding("utf-8");
      response.setContentType("text/html;charset=utf-8");
      //response.getWriter().println("success");
      request.setAttribute("test","hello world this is class name index controller");
      request.getRequestDispatcher("view/index.jsp").forward(request, response);;
    }catch(Exception e)
    {
      System.out.println("error");
      e.printStackTrace();
    }
  }
}



注 スーパークラスで定義されているメソッドをオーバーライドします。

すべてのサーブレットクラスは、リクエスト要求を処理するために、HttpServletを継承する必要があります。

IndexController は処理後の生成データをリクエストスコープに格納し、 リクエストを view/index.jsp にリダイレクトします。

ここで、doGetはgetリクエストを受け付けるリクエストとレスポンスがリクエストとレスポンスであることを表明している

ビュー/index.jsp

<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8" %>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>index</title>
  </head>
  <body>
    <p><%=request.getAttribute("test") %></p>
  </body>
</html>



リクエストスコープからバックエンドデータを取得します。

シンプルなMVCパターンを実装しています。

この記事が、あなたのjspプログラミングのお役に立てれば幸いです。