zoukankan      html  css  js  c++  java
  • 前后端分离--三层

    建议先了解怎么分两层,http://www.cnblogs.com/-beyond/p/7954177.html

    再分两层的基础上,还可对后端处理数据的那一层再一分为二,一层为模型层(model),一层为控制层(controller)

    其中模型层(model)的任务是对数据进行处理,然后提供一个接口(interface、function)给控制器层(controller),控制器层把数据(通过调用模型层提供的接口获得) 分配(或者说是指派)给视图层(view),视图层就是分成两层时的模板(template)。

    代码示例如下:

    视图层(view.php)

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<h1>根据ID获得姓名</h1>
    	<form action="">
    		<input type="text" name="id">
    		<input type="submit" name="submit">
    	</form>
    	<p>
    		<?php 
    			if(!empty($result)){
    				echo $result;
    			} 
    		?>
    	</p>
    </body>
    </html>
    

    然后是控制器层(controller.php):

    <?php 
    	// 载入模型层
    	include("model.php");
    
    	//获取视图层传来的数据
    	$id=isset($_GET['id'])?$_GET['id']:"";
    
    	//调用模型层的方法,获得数据,并将数据进行处理。
    	$result="查询结果是:".getNameByID($id);
    
    	//载入视图
    	include("view.php");
     ?>
    

    最后是模型层(model.php):

    <?php 
    	//此处简单模拟从数据库查询过程。
    	function getNameByID($id){
    		$name=array("one"=>"张飞","two"=>"刘备","three"=>"关羽");
    		if(array_key_exists($id, $name)){
    			return $name[$id];
    		} else {
    			return "暂无此人";
    		}
    	}
     ?>
    

      运行结果如下:

      总结:

      模型层只负责产生并返回数据(通过提供一个接口给控制器层),一般不会对数据进行额外的格式处理,格式处理的工作应该交给控制器层来做;

      控制器层只是接受视图层的请求,根据请求来调用模型提供的接口来获取数据,并对数据的格式等进行处理后 指派 给视图

      视图负责展示 包含控制器层分配的 数据的 界面

  • 相关阅读:
    解决端口被占用
    Oracle查询所有表的字段明细
    Spring cron表达式
    Java爬取12306余票
    Activiti工作流框架——快速上手
    ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)【奇葩的bug】
    一分钟学会JavaMail(假)__手动滑稽
    通过Servlet实现汉字验证码
    使用ServletContext对象读取资源文件
    编写一个简单的java服务器程序
  • 原文地址:https://www.cnblogs.com/-beyond/p/7954429.html
Copyright © 2011-2022 走看看