当前位置: 首页 > news >正文

Java中Model1和Model2


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


Model1

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




<%@ 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




/**
 * 改动物料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);
	}

}

          在样例中,我们在client请求改动的命令到servlet,把调用业务逻辑的方法放在ModifyItemServlet中。


小结:

       Model1结构简单,easy上手。适合一些小型的项目。但也正是因为他的这个长处。也带来了非常大的弊端。

他把业务逻辑和表现都杂糅到了一起,使得耦合度大大添加,给维护带来了非常大的困难。

尤其是在大型的项目中。这点就尤为突出了。Model2弥补了Model1 的缺点,在大型项目开发中。能够更好的做到多人协作开发,互不影响。

相关文章:

  • config jre for openoffice3.0
  • 2017敏捷沙滩大会概述:学习、心理安全和持续交付的重要性
  • 简洁的一键SSH脚本
  • Page-Enter、Page-Exit的使用
  • 很认真的聊一聊程序员的自我修养(转)
  • ERP系统各种单据流水号的产生方案
  • WebSocket在spring messagemapping下获取httpsession
  • 图片的动画 ease.js
  • [翻译].net 2.0(c#)下简单的FTP应用程序(转)
  • Python Unicode 转换 字符串
  • java中关于、、|、||之间的区别和运算
  • 生成静态页面的方法
  • 项目质量量化考核建议
  • Linux命令(磁盘的卸载与挂载)
  • 手势识别论文解读
  • 时间复杂度分析经典问题——最大子序列和
  • 《Java编程思想》读书笔记-对象导论
  • 「译」Node.js Streams 基础
  • co.js - 让异步代码同步化
  • express + mock 让前后台并行开发
  • interface和setter,getter
  • JavaScript函数式编程(一)
  • Java新版本的开发已正式进入轨道,版本号18.3
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • Swoft 源码剖析 - 代码自动更新机制
  • 爱情 北京女病人
  • 搭建gitbook 和 访问权限认证
  • 区块链将重新定义世界
  • MPAndroidChart 教程:Y轴 YAxis
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • (1)SpringCloud 整合Python
  • (附源码)ssm码农论坛 毕业设计 231126
  • (六)c52学习之旅-独立按键
  • (算法)前K大的和
  • (转)scrum常见工具列表
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .sh
  • ?.的用法
  • []指针
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Android学习笔记]ScrollView的使用
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [C#]winform部署PaddleOCRV3推理模型
  • [CSS]中子元素在父元素中居中
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [dts]Device Tree机制