自定义MVC(原理)自定义MVC请求参数处理,包装类默认值更改

本文介绍了自定义MVC框架的工作原理,包括中央控制器、Action接口和视图、模型的职责。详细讲解了如何创建中央处理器,实现请求分发,并通过XML解析配置子控制器。同时,文章探讨了处理请求参数的两种方式,一种是通过接口和静态块加载,另一种是通过抽象类和反射调用。最后,提供了测试案例和注意事项。
摘要由CSDN通过智能技术生成

1. 什么是MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。 它是一种软件设计典范。

用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。

  • 模型(model): 它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的dao类)和数据模块(pojo类)。pojo一般可以叫做实体域模型,dao和service称为过程域模型。
  • 视图(view): 用户与之交互的界面、在web中视图一般由jsp,html组成,其他的还包括android,ios等等。
  • 控制器(controller): 接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用。

不足的地方:

  • 增加系统结构和实现的复杂性。对于简单的界面,严格遵守MVC,需要使模型、视图与控制器分离,增加系统复杂性
  • 视图和控制器之间的关系太过紧密了

 自定义MVC工作原理图

核心组件说明:

  • 中央控制器(ActionServlet): 复杂接收所有的请求,并分别给控制器具体处理。
  • 自控制器(Action):负责处理中央处理器分配的请求
  • 视图(view): jsp页面,负责显示
  • 模型(Model): 负责业务处理逻辑

具体实现

1.首先创建一个中央处理器(路由,访问代理)

 我们可以使用filter和servlet俩种方式来创建我们的中央处理器项目我就使用servlet来创建

/**
 * 中央控制器,负责接收所有的请求并分别给控制器具体处理
 * @author Administrator
 */
@WebServlet("*.action")
public class ActionDispatchServlet extends HttpServlet {
	
	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response) {
		doPost(request, response);
	}
	
	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response) {
		System.out.println("dopost ..... ");
	}

}

这里要注意,在上面的@welservlet注解的("*.action")是自己定义的,可更改,但习惯用.action

在完成这个后就可以开始定义一个action接口来做一个规范来用于定义子控制器必须实现的方法。

Action接口

package com.zking.mvc.farmework;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 
 * @author 每个子控制器必须实现该接口,负责处理中央处理器分配的请求 用于定义子控制器必须实现的方法
 */
public interface Action {
	/**
	 * 处理请求
	 * 
	 * @param request  请求
	 * @param response 响应
	 * @return String 返回转发或重定向的jsp页面名称
	 */

	String exeute(HttpServletRequest req, HttpServletResponse resp);

}

定义完接口后我们就来实现了两个子控制器,为了方便我就写在一起了,记得分开这是两个类

为方便调试,实现两个子控制器,

public class BookAction implements Action {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值