MVC是三個(gè)單詞的縮寫,分別為: 模型(Model),視圖(View)和控制Control) MVC模式的目的就是實(shí)現(xiàn)Web系統(tǒng)的職能分工。 Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以用JavaBeanEJB來(lái)實(shí)現(xiàn)。 View層用于與用戶的交互,通常用JSP來(lái)實(shí)現(xiàn)。 Control層是ModelView之間溝通的橋梁,它可以分派用戶的請(qǐng)求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時(shí)它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。

MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。

MVC的架構(gòu):

  視圖是用戶看到并與之交互的界面。作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。

模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。

控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。

下面是應(yīng)用MVC的小例子:

封裝一個(gè)實(shí)體類User,即模型M

package com.dr.vo;

 

public class User {

    private int id;

    private String name;

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

 

}

新建名為c_forEachJSP文件,即為視圖V

body中如下配置:

<body>

    <%

    List list=new ArrayList();

    for(int i=0;i<8;i++){

    User u=new User();

    u.setId(i);

    u.setName("name"+i);

    list.add(u);

    }

    request.setAttribute("UserList",list);

     %>

     <table>

     <tr><th>ID</th><th>Name</th><th>index</th><th>count</th><th>isFirst?</th><th>isLast?</th></tr>

    

     <c:forEach var="user" items="${UserList }" varStatus="status">

     <tr>

         <td>

            ${user.id}

         </td>

         <td>

            ${user.name}

        </td>

        <td>

            ${status.index}

        </td>

        <td>

            ${status.count}

        </td>

        <td>

            ${status.first}

        </td>

        <td>

            ${status.last}

        </td>

     </tr>

       

     </c:forEach>

     </table>

  </body>

創(chuàng)建MvcServlet類,即為控制器C

package com.dr.servlet;

 

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import com.dr.jstl.User;

 

public class MvcServlet extends HttpServlet{

 

    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

      

       List<User> list=new ArrayList<User>();

        for(int i=0;i<8;i++){

        User u=new User();

        u.setId(i);

        u.setName("name"+i);

        list.add(u);

        }

        request.setAttribute("UserList", list);

        request.getRequestDispatcher("/c_forEach.jsp").forward(request, response);

    }

}

web.xml中配置如下:

<servlet>

    <servlet-name>MvcServlet</servlet-name>

    <servlet-class>com.dr.servlet.MvcServlet</servlet-class>

    </servlet>

   

    <servlet-mapping>

    <servlet-name>MvcServlet</servlet-name>

    <url-pattern>/mvc</url-pattern>

    </servlet-mapping>

 

將目錄加入到Tomcat中,啟動(dòng)Tomcat,打開(kāi)瀏覽器,輸入網(wǎng)址http//127.0.0.1:8080/JSP_JSTL_Project/mvc  結(jié)果如下: