model java_Java中Model1和Model2

Model1和Model2是java web的两种架构模式。这两种模式各有优缺点,都有各自适合使用的场景。

Model1

首先,从分层的角度说,Model1模式可以看作是由两层组成:视图层和模型层。

26a4eee8530e74106fc529cff5b141f7.png

2e73926488eaa879b243d43b15cb2294.png

//取得参数

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

f5ec6a33928cab9a62c318da0664221e.png

a3d54db05b417bd3db2e260a971fd51a.png

/**

* 修改物料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 的缺点,在大型项目开发中,可以更好的做到多人协作开发,互不影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值