MVC模式簡介


簡介:

學習過基本Java Web開發的人都已經了解了如何編寫基本的Servlet,如何編寫jsp及如何更新瀏覽器中顯示的內容。但是我們之前自己編寫的應用一般存在無條理性,對於一個小型的網站這樣的編寫沒有任何問題,但是一但我們需要編寫大型的web工程的話,我們現有的編寫模式會造成web應用的可擴展性較差,而且一但出現問題不能准確的定位出問題出在哪里。

Java是一門應用設計模式比較廣泛的語言。目前主流提出的23種設計模式均可在Java語言編寫的程序中所應用。目前主流在Java Web應用中應用的最廣泛的設計模式便是MVC模式,目前的主流Web框架大多也是基於MVC設計模式所編寫的。

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

Java Web應用程序的主要組件:

MVC 是 Model-View-Control 的簡稱,即模型-視圖-控制器。它是一個存在於服務器
表達層的模型,它將應用分開,改變應用之間的高度耦合。

Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。通常模型對象負責在數據庫中存取數據。

View(視圖)是應用程序中處理數據顯示的部分。通常視圖是依據模型數據創建的。

Controller(控制器)是應用程序中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

Java Web解決方案:

(1)視圖:jsp或者html頁面,顯示給用戶的頁面,供用戶進行操作。其中可使用js,css等方法進行美化。

Index.html

<body>

<form action="login.do"  method="post">      <!--所提交的表單,action為"login.do",發出請求是post-->

<p>賬號:<input type="text" name="id" /></p>      <!--所輸入的"賬號"在提交后的標示是"id",下同 -->                                                   

<p>密碼:<input type="text" name="password" />

<p><input type="submit" value="登錄"> </p>           <!--表單提交按鈕,顯示名稱為"登錄"-->

</form>

</body>

(2)控制器:在web.xml中把action同servlet連接起來,控制數據的傳遞。

Web.xml

<servlet>

<servlet-name>MyServlet</servlet-name><!--定義servlet的名稱 -->

<servlet-class>cc.MyMVC.servlet.MyServlet</servlet-class><!--對應servlet所屬的文件名 -->

</servlet>

<servlet-mapping> <!-- 建立servlet與action之間的映射 -->

<servlet-name>MyServlet</servlet-name>  <!-- 映射中servlet的名稱,已定義 -->

<url-pattern>/login.do</url-pattern>    <!-- 所對應的action -->

</servlet-mapping>

 

 

Servlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)//處理post請求的方法
throws ServletException, IOException {
         boolean b=false;
         MyPOJO myPOJO=new MyPOJO();//新建MyPOJO類的對象myPOJO
        //根據標示名獲取JSP文件中表單所包含的參數
         String id=request.getParameter("id");
         String password=request.getParameter("password");         
         b=myPOJO.login(id,password);//使用模型對賬號和密碼進行驗證,返回一個boolean類型的對象         
         if(b){  //如果驗證結果為真,跳轉至登錄成功頁面
             response.sendRedirect("LoginSuccessful.jsp");
         }
         else {  //如果驗證結果為假,跳轉至登錄失敗頁面
             response.sendRedirect("LoginFailed.jsp");
         }         
     }

 

(3)模型:建立數據模型,對數據庫進行操作,將數據庫中的數據同實際項目結合起來。

public class UpdateDb {

Connection conn;

Statement stmt;

ResultSet result;

public void doUpdate(String sql) {

    GetConnection getedConnection = new GetConnection();

    conn = getedConnection.getConnection();

    try {

        stmt = conn.createStatement();

        stmt.executeQuery(sql);

        

      } catch (SQLException e) {

        e.printStackTrace();

     }

}}

Java Web 常用MVC框架:

  1. struts框架:

Struts是最早的java開源框架之一,它是MVC設計模式的一個優秀實現。 Struts定義了通用的Controller(控制器),通過配置文件(通常是 Struts -config.xml)隔離Model(模型)和View(視圖),以Action的概念以對用戶請求進行了封裝,使代碼更加清晰易讀。 Struts還提供了自動將請求的數據填充到對象中以及頁面標簽等簡化編碼的工具。 Struts能夠開發大型Java Web項目。

  1. hibernate框架

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

  1. spring框架

Spring的一個最大的目的就是使J2EE開發更加容易。同時,Spring之所以與Struts、Hibernate等單層框架不同,是因為Spring致力於提供一個以統一的、高效的方式構造整個應用,並且可以將單層框架以最佳的組合揉和在一起建立一個連貫的體系。可以說Spring是一個提供了更完善開發環境的一個框架,可以為POJO(Plain Old Java Object)對象提供企業級的服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM