MVC设计模式及JavaWeb三层框架实例

1 MVC设计模式

MVC设计模式
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。
1控制器Controller:对请求进行处理,负责请求转发;
2视图View:界面设计人员进行图形界面设计;
3模型Model:程序编写程序应用的功能(实现算法等等)、数据库管理;
注意,MVC不是Java的东西,几乎现在所有B/S结构的软件都采用了MVC设计模式。但是要注意,MVC在B/S结构软件并没有完全实现。

做一个形象的比喻:比如在一个大饭店里,有厨师,服务员,吧台(调度员)分别对应MVC模式中的Model,View,Controller
当顾客来点菜时,往往都是由服务员来接待顾客,服务员把点的菜告诉吧台,由吧台来完成告诉厨师做什么菜。
对应的,客户端请求服务,由View来完成响应,View告诉Controller,Controller来调用Model完成对事件的响应。




2.JavaWeb三层框架
所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。
1 WEB层:包含JSP和Servlet等与WEB相关的内容;
2 业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;
3 数据层:封装了对数据库的访问细节;

在这里插入图片描述
浏览器通过请求Servlet 后由Servlet来调用JavaBean(即Service),Service后调用DB进行对数据的修改。 修改完要返回到客户端的数据通常可以存储到域对象中,通过Servlet请求转发到jsp中响应给用户。
优点:耦合性高,例如如果要换数据库时,只需修改DB的代码即可。如改变为B/S模型时,也只需要修改请求代码

简单的JavaWeb三层框架例子:
流程图如下
在这里插入图片描述

Domain

public class User {
  private String name;
  private String password;
  public String getName() {
	return name;
  }
public String getPassword() {
	return password;
  } 
public User(String name,String password)
  {
	  this.name=name;
	  this.password=password;
  }
}

DOB

public class UserDob {
    
	public  User find()
	{
	 return new User("zhangshan","123456");
    } 
}

Servlet

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
            UserService usv=new UserService();
            User u1=usv.find();
            request.setAttribute("User", u1);
            request.getRequestDispatcher("/showUser/show.jsp").forward(request, response);
	}

Servcie

public class UserService {
    public static User find()
    {
    	UserDob ub=new UserDob();
    	return ub.find();
    }
}

jsp页面

 响应 jsp
 <html>
  <body>
    <a href="<c:url value='/UserServlet'/>">请点击这里查看用户信息</a>
  </body>
</html>

转发jsp
  <html>
  <body>
    用户名:${User.name } <br/>
    密码: ${User.password }
  </body>
</html>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值