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);
} }
在例子中,我们在客户端请求修改的命令到servlet,把调用业务逻辑的方法放在ModifyItemServlet中。
小结:
Model1结构简单,容易上手,适合一些小型的项目。但也正是由于他的这个优点,也带来了很大的弊端。他把业务逻辑和表现都杂糅到了一起,使得耦合度大大增加,给维护带来了很大的困难。尤其是在大型的项目中,这点就尤为突出了。Model2弥补了Model1 的缺点,在大型项目开发中,可以更好的做到多人协作开发,互不影响。
Java中Model1和Model2的更多相关文章
- 【drp 10】JSP页面中model1和model2的区别
一.基本概念 1.1,model1 model1的开发模式是:jsp+javabean的模式,它的核心是JSP页面,在这个页面中,jsp页面负责整合页面和javabean(业务逻辑),而且渲染页面.它 ...
- 【Java架构学习】Model1和Model2讨论
在Java的学习中.这两个词的频率出现的非常高.那就是Model1和Model2.那么到底什么是Model1,什么是Model2呢?我们是不是又非常自然接受这两个概念.可是不知道其所以然呢?今天我们就 ...
- 浅析Java开发模式—Model1、Model2和三层
"解耦"的思想一直是我们倡导的,但在实际项目中怎样去做?这是需要我们去好好思考的.下面以Model1.Model2.三层为切入点,对比下去了解解耦的思想. Model1 使用JSP ...
- Java Web开发技术教程入门-Model1和Model2
今天我们聊聊JSP开发中的Model1和Model2. Model1采用了JSP+JavaBean技术开发Web应用.其中,JSP实现页面显示,业务逻辑和流程控制,数据处理由JavaBean完成.在J ...
- Model1与Model2
Model1与Model2开发模式的介绍及区别 转载 浅析Java开发中的Model1和Model2
- java中的传值与传引用
java函数中的传值和传引用问题一直是个比较“邪门”的问题,其实java函数中的参数都是传递值的,所不同的是对于基本数据类型传递的是参数的一份拷贝,对于类类型传递的是该类参数的引用的拷贝,当在函数体中 ...
- 浅谈Model1 VS Model2
在学习drp的过程中就对model1和model2产生了浓厚的兴趣,一直都没有好好总结下,接下来就和大家一起学习下它们的真面目. 一.是什么? 首先大家提到model想到了什么?它的名词意识是:模型: ...
- 浅析JavaWeb开发模式:Model1和Model2
一.前言 在学习JavaWeb的过程中,大家都会接触到Model1和Model2,历史的发展过程是Model1 → Model2.那么它们之间有何相同之处和不同之处呢? 二.Model1 Model1 ...
- java中的锁
java中有哪些锁 这个问题在我看了一遍<java并发编程>后尽然无法回答,说明自己对于锁的概念了解的不够.于是再次翻看了一下书里的内容,突然有点打开脑门的感觉.看来确实是要学习的最好方式 ...
随机推荐
- Angularjs基础(六)
AngularJS HTML DOM AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled指令 ng-disabled指令直接绑定应用数据到HTML的di ...
- [HAOI2007]上升序列(最长上升子序列)
题目描述 对于一个给定的 S=\{a_1,a_2,a_3,…,a_n\}S={a1,a2,a3,…,an} ,若有 P=\{a_{x_1},a_{x_2},a_{x_3},…,a_{x_m}\ ...
- FirstBird--项目流程
创建项目(英文路径)—–img图片文件 创建窗体–设置大小(Basic—size–>320*480)—最大化功能禁用(Expert–>setResizable(false)) 添加面板–设 ...
- HDU1159(LCS)
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> us ...
- Java常用的正则校验
1.非负整数: (^[1-9]+[0-9]*$)|(^[0]{1}$) 或 (^[1-9]+[0-9]*$)|0 2.非正整数: (^-[1-9]+[0-9]*$)|(^[0]{1}$) 或 (^-[ ...
- 构建高可靠hadoop集群之4-权限指引
此文翻译自http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html ...
- tomcat6添加服务
Mysql在导入大量数据的时候就要把tomcat添加成服务 添加服务 在DOS界面下,进入Tomcat解压目录的bin目录 service.bat install
- Eclipse build时间太长,无法忍受,完美解决方案,Eclipse 编译太卡,耗时太长
目前开发使用了Eclipse ,每次报错的时候都会build,,每次build的时间都很长,接近10秒左右,好难受呀.. 刚开始一直以为是项目内容多导致的,但是想想之前做的项目,无论再多,也都是秒级的 ...
- 其他乱七八糟的css
white-space:normal; word-break:break-all;字母数字强制换行表格宽度失效给上table-layout:fixed(display: table-cell;此元素会 ...
- 基于设备树的led驱动程序
#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...