自定义MVC-初步了解
首先我们先了解mvc是什么
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,
他们各司其职 但是不能跨层调用,只能出现由上而下的调用
M 调用dao处理项目业务的
- 实体域模型(名词)
- 过程域模型(动词)
V 做浏览器请求分发 jsp/ios/android
C 操作数据库 servlet/action
我们了解MVC后从而出现可以自己定义MVC,来省去 jsp传递到后台封装成对象的过程和省去结果集的处理,就出现了中央控制器,子控制器
主控制动态调用子控制器调用完成具体的业务逻辑,图中的ActionServlet作为中央控制器,而Action作为子控制器
如果视图层传来请求,主控制器要查看是否有对应的子控制器来处理用户请求,如果就调用子控制器来处理请求;没有就报错,就处理不了请求
子控制器 就是处理用户请求用的
接下来我们开始自定义MVC来完成一个简单的加减乘除的计算案例
准备实体类
Cal.java
创建中央控制器和子控制器
建一个包com.framework
中央控制器中调用子控制器的方法
注意:记得在web.xml配置
/**
* 主控制器
* @author Administrator
*
*/
public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//一个servlet请求对应一个子控制器
private Map<String, Action> actionMap = new HashMap<String, Action>();
public void init() {
//子控制器方法
// 子控制名 实例子控制器
actionMap.put("/addCal", new AddCalAction());
actionMap.put("/delCal", new DelCalAction());
actionMap.put("/rideCal", new RideCalAction());
actionMap.put("/removeCal", new RemoveCalAction());
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {