IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 自定义MVC框架01 -> 正文阅读

[开发测试]自定义MVC框架01

什么是MVC

  • MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码
  • Model :? jsp+jdbc
  • Model : ->MVC
  • 核心思想:各司其职

MVC结构

  • V view
  • jsp/ios/android
  • C controller
  • M model
  • servlet/action
  • 实体域模型(名词)entity
  • 过程域模型(动词)dao/biz

注1:不能跨层调用

注2:只能出现由上而下的调用

具体代码步骤

//写一个中央代码器ActionServlet管理所有servlet的传输内容
/**中央控制器
 * @author Administrator
 *
 */
public class ActionServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//得到要解析的字符串的位置
		 String url = req.getRequestURI();
		
		 int start=url.lastIndexOf("/"); 
		 int end=url.lastIndexOf("."); 
		 if(end!=-1) {//如果有点的话
			 url=url.substring(start, end);
		 }else {//如果吗没有点的话 
			 url=url.substring(start);
		 }
		//根据截取的url里面找到对应的configModel中找到ActionModel
		 try { 
			 ConfigModel configModel =           ConfigModel.createConfigModel("/config.xml");
		     ActionModel actionModel = configModel.get(url);
		     /**根据全限定名,得到对象,实例化对象
		      * ,调取对象的方法
		      */
		     String type=actionModel.getType();
		     System.out.println(type);
		     Class c = Class.forName(type);
		     Object obj = c.newInstance();
		     String method = req.getParameter("method");
		     Method m = c.getMethod(method);
 		     //给要传的属性赋值
                     //先定义一个接口,然后写一个得到模型的方法getModel()
                     //if(obj  instanceof modelDriver) {//如果继承obj实现了modelDriver
        	            StudentBiz ss=(StudentBiz)obj;
        	            Student stu = ss.getModel();
        	            BeanUtils.populate(stu, req.getParameterMap());//则给属性赋值
                     }


		     Object str = m.invoke(obj);
		     //根据方法进行页面跳转
		     ForwardModel forward = actionModel.get(str.toString());
		     System.out.println(forward);
		     if(forward.isRedirect()) {
		    	 resp.sendRedirect(forward.getPath());
		     }else {
		    	 req.getRequestDispatcher(forward.getPath()).forward(req, resp);
		     }
		     
		     
		 } catch (Exception e) { 
			 // TODOAuto-generated catch block
			 e.printStackTrace(); 
		 }
		
		
	}
}

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 11:07:03  更:2021-07-23 11:08:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 3:04:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码