<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Model1和Model2是java web的兩種架構模式。這兩種模式各有優缺點,都有各自適合使用的場景。 Model1 首先,從分層的角度說,Model1模式可以看作是由兩層組成:視圖層和模型層。 ![](https://box.kancloud.cn/2016-04-27_57206b0569601.jpg) ![](https://box.kancloud.cn/2016-04-27_57206b0580a9b.jpg) ~~~ <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ page import="com.bjpowermode.drp.sysmgr.*"%> <%@ page import="com.bjpowermode.drp.domain.*"%> <% //取得參數 String command=request.getParameter("command"); String userId=request.getParameter("userId"); //調用業務邏輯中的查詢用戶代碼是否存在的方法 User user=UserManager.getInstance().findUserById(userId); //點擊修改 if("modify".equals(command)){ //User user=new User(); user.setUserId(request.getParameter("userId")); user.setUserName(request.getParameter("userName")); user.setPassword(request.getParameter("password")); user.setContactTel(request.getParameter("contactTel")); user.setEmail(request.getParameter("email")); //調用業務邏輯中的修改用戶的方法 UserManager.getInstance().modifyUser(user); System.out.println("修改成功"); } %> ~~~ 可以看出,model1是以jsp為中心的,在jsp頁面調用了很多業務邏輯的方法。在例子中,我們選擇一個用戶,點擊修改,就將數據提交到了jsp對象中。然后在jsp去調修改用戶的方法,執行數據庫操作,最后返回結果。這種模式讓我想起了在沒有用三層之前, Model2 ![](https://box.kancloud.cn/2016-04-27_57206b0596ee3.jpg) ![](https://box.kancloud.cn/2016-04-27_57206b05ac9eb.jpg) ~~~ /** * 修改物料Servlet * @author Administrator * */ public class ModifyItemServlet extends AbstractItemServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //構造表單數據 String itemNo=request.getParameter("itemNo"); String itemName=request.getParameter("itemName"); String spec=request.getParameter("spec"); String pattern=request.getParameter("pattern"); String category=request.getParameter("category"); String unit=request.getParameter("unit"); //構造Item對象 Item item=new Item(); item.setItemNo(itemNo); item.setItemName(itemName); item.setSpec(spec); item.setPattern(pattern); //構造物料類別 ItemCategory itemCategory=new ItemCategory(); itemCategory.setId(category); item.setItemCategory(itemCategory); //構造物料單位 ItemUnit itemUnit=new ItemUnit(); itemUnit.setId(unit); item.setItemUnit(itemUnit); //調用后臺業務邏輯 itemManager.modifyItem(item); response.sendRedirect(request.getContextPath()+"/servlet/item/SearchItemServlet"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } } ~~~ 在例子中,我們在客戶端請求修改的命令到servlet,把調用業務邏輯的方法放在ModifyItemServlet中。 小結: Model1結構簡單,容易上手,適合一些小型的項目。但也正是由于他的這個優點,也帶來了很大的弊端。他把業務邏輯和表現都雜糅到了一起,使得耦合度大大增加,給維護帶來了很大的困難。尤其是在大型的項目中,這點就尤為突出了。Model2彌補了Model1 的缺點,在大型項目開發中,可以更好的做到多人協作開發,互不影響。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看