<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【JavaWeb】MVC三層架構

      MVC三層架構

      • MVC 是什么?
      • 三層架構的組成(View、Controller、Model)
      • 各層職責劃分
      • 示例說明
      • 面試高頻問題與參考答案

      MVC(Model-View-Controller)是一種經(jīng)典的軟件設計模式,廣泛應用于 Web 應用開發(fā)中,尤其是 Java Web(Servlet + JSP)、Spring MVC 等框架。


      什么是 MVC?

      MVC 全稱是 Model-View-Controller,它將應用程序分為三個核心部分:

      層級英文名中文名職責
      MModel模型處理數(shù)據(jù)、業(yè)務邏輯
      VView視圖用戶界面(如 HTML 頁面)
      CController控制器接收請求,調(diào)用模型,返回視圖

      MVC 在 Java Web 中的三層架構詳解

      在實際開發(fā)中,我們通常把 MVC 擴展為 三層架構(3-tier architecture),分別是:

      表現(xiàn)層(View / UI Layer)

      • 技術實現(xiàn):JSP、HTML、CSS、JavaScript
      • 作用
        • 展示數(shù)據(jù)給用戶
        • 接收用戶輸入
        • 不處理復雜邏輯,只負責展示和跳轉

      控制層(Controller Layer)

      • 技術實現(xiàn):Servlet、Spring MVC 的 @Controller@RestController
      • 作用
        • 接收用戶的 HTTP 請求
        • 調(diào)用 Service 層處理業(yè)務邏輯
        • 根據(jù)結果選擇跳轉的頁面(Forward/Redirect)

      示例代碼(Servlet):

      @WebServlet("/login")
      public class LoginServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              String username = request.getParameter("username");
              String password = request.getParameter("password");
      
              UserService userService = new UserService();
              User user = userService.login(username, password);
      
              if (user != null) {
                  request.setAttribute("user", user);
                  request.getRequestDispatcher("welcome.jsp").forward(request, response);
              } else {
                  response.sendRedirect("login.jsp");
              }
          }
      }
      

      業(yè)務邏輯層(Service Layer)

      • 技術實現(xiàn):Java 類(如 UserServiceOrderService
      • 作用
        • 處理具體的業(yè)務規(guī)則(如登錄驗證、訂單計算)
        • 調(diào)用 DAO 層獲取或保存數(shù)據(jù)

      示例代碼:

      public class UserService {
          private UserDao userDao = new UserDao();
      
          public User login(String username, String password) {
              return userDao.findByUsernameAndPassword(username, password);
          }
      }
      

      數(shù)據(jù)訪問層(DAO Layer / Persistence Layer)

      • 技術實現(xiàn):Java 類(如 UserDao),配合 JDBC、MyBatis、Hibernate 等
      • 作用
        • 與數(shù)據(jù)庫交互(增刪改查)
        • 封裝底層 SQL 操作

      示例代碼:

      public class UserDao {
          public User findByUsernameAndPassword(String username, String password) {
              // 連接數(shù)據(jù)庫查詢
              // 返回 User 對象
          }
      }
      

      MVC 分層結構

      +---------------------+
      |       Browser       |
      +----------+----------+
                 |
                 | HTTP Request
                 v
      +----------+----------+
      |     Controller      | ←→ 調(diào)用 Service 層
      +----------+----------+
                 |
                 | 調(diào)用 DAO 層
                 v
      +----------+----------+
      |       Service       |
      +----------+----------+
                 |
                 | 操作數(shù)據(jù)庫
                 v
      +----------+----------+
      |         DAO         |
      +----------+----------+
                 |
                 | 數(shù)據(jù)庫操作
                 v
      +----------+----------+
      |       Database      |
      +---------------------+
      

      MVC 的優(yōu)勢

      優(yōu)點說明
      分工明確各層職責清晰,便于團隊協(xié)作
      易于維護修改某一層不影響其他層
      可擴展性強可以替換某一層而不影響整體架構
      降低耦合各層之間通過接口通信,松耦合設計
      提高復用性Service 層可被多個 Controller 復用

      簡單案例演示

      場景:用戶登錄功能

      View(login.jsp)
      <form action="login" method="post">
        用戶名:<input type="text" name="username"><br>
        密碼:<input type="password" name="password"><br>
        <input type="submit" value="登錄">
      </form>
      
      
      Controller(LoginServlet)
      @WebServlet("/login")
      public class LoginServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              String username = request.getParameter("username");
              String password = request.getParameter("password");
      
              UserService userService = new UserService();
              User user = userService.login(username, password);
      
              if (user != null) {
                  request.setAttribute("user", user);
                  request.getRequestDispatcher("welcome.jsp").forward(request, response);
              } else {
                  response.sendRedirect("login.jsp");
              }
          }
      }
      
      Service(UserService.java)
      public class UserService {
          private UserDao userDao = new UserDao();
      
          public User login(String username, String password) {
              return userDao.findByUsernameAndPassword(username, password);
          }
      }
      
      DAO(UserDao.java)
      public class UserDao {
          public User findByUsernameAndPassword(String username, String password) {
              // 查詢數(shù)據(jù)庫并封裝成 User 對象
              return user;
          }
      }
      
      View(welcome.jsp)
      <h1>歡迎你,${user.username}</h1>
      

      面試高頻問題

      Q1:MVC 和三層架構的區(qū)別是什么?

      A:MVC 是一種設計模式,強調(diào)的是 用戶交互流程;而三層架構是從 系統(tǒng)架構角度 劃分的層次結構,兩者結合后形成完整的 Web 應用結構。


      Q2:為什么要在項目中使用 MVC?

      A:為了實現(xiàn) 前后端分離、邏輯清晰、易于維護、提高開發(fā)效率。各層分工明確,便于多人協(xié)作開發(fā)。


      Q3:Servlet 在 MVC 中屬于哪一層?JSP 呢?

      A:

      • Servlet 屬于 Controller 層,用于接收請求和控制流程;
      • JSP 屬于 View 層,用于展示數(shù)據(jù)和頁面渲染。

      Q4:如果不用 MVC,會有什么問題?

      A:會出現(xiàn)大量業(yè)務邏輯混雜在 JSP 頁面中,導致代碼難以維護、不易測試、安全性差等問題。


      Q5:如何保證各層之間的低耦合?

      A:通過接口編程、依賴注入等方式,使各層之間僅依賴接口而非具體實現(xiàn)類。


      posted @ 2025-06-01 11:27  柯基大大  閱讀(120)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 性欧美三级在线观看| 国产天美传媒性色av高清| 国产成人欧美一区二区三区在线| 在线观看视频一区二区三区| 久久亚洲精品中文字幕馆| 成人精品日韩专区在线观看| 不卡一区二区国产在线| 日日躁夜夜躁狠狠久久av| 色呦呦九九七七国产精品| 欧洲亚洲精品免费二区| 性色av免费观看| 欧美人与动交视频在线观看| 国产精品久久蜜臀av| 中文字幕亚洲人妻系列| 亚洲精品日本一区二区| 久久精品国产久精国产| 亚洲另类在线制服丝袜国产| 亚洲精品麻豆一二三区| 精品无套挺进少妇内谢| 欧美日韩精品一区二区三区高清视频| 免费无码AV一区二区波多野结衣| 国产美女永久免费无遮挡| 国产成人剧情AV麻豆果冻| 亚洲国产精品男人的天堂| 国产福利社区一区二区| 登封市| 性欧美暴力猛交69hd| 色婷婷久久综合中文久久一本| 亚洲欧美日韩国产精品专区| av天堂久久精品影音先锋 | 一区二区三区鲁丝不卡| 亚洲熟妇丰满多毛xxxx| 精品国产一区二区在线视| 国产中文三级全黄| 久热伊人精品国产中文| 日韩精品毛片一区到三区| 国产成人亚洲综合图区| 亚洲国产良家在线观看| 日韩美女视频一区二区三区| 人人妻人人澡人人爽| 人人玩人人添人人澡超碰|