自定义mvc框架1
发布日期:2022-02-27 17:51:23 浏览次数:35 分类:技术文章

本文共 3557 字,大约阅读时间需要 11 分钟。

1、 什么是MVC?

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,

它是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码(核心思想:各司其职)

注1:不能跨层调用

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

2、自定义MVC工作原理图

在这里插入图片描述

实例(利用mvc做一个计算器):
首先:写一个实体类

public class Cal {	private String num1;	private String num2;	public String getNum1() {		return num1;	}	public void setNum1(String num1) {		this.num1 = num1;	}	public String getNum2() {		return num2;	}	public void setNum2(String num2) {		this.num2 = num2;	}}

然后写一个主控制器(主控制器:查看是否有对应的子控制器来处理用户请求,如果就调用子控制器来处理请求;没有就报错,就处理不了请求)

public class DispatcherServlet extends HttpServlet {	private static final long serialVersionUID = 6716422786850137569L;	private Map
actionMap = new HashMap<>(); public void init() { actionMap.put("/addCal", new AddCalAction()); actionMap.put("/delCal", new delCalAction()); actionMap.put("/chengCal", new ChengCalAction()); actionMap.put("/chuCal", new ChuCalAction()); } @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 { init(); String url = req.getRequestURI();//mvc/xxx.action url = url.substring(url.lastIndexOf("/"), url.lastIndexOf(".")); Action action = actionMap.get(url); action.execute(req, resp); } }

在写一个子控制器(处理用户请求用的)

public interface Action {	void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException ;}

再写一个jsp界面当作计算器

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
num1:
num2:

再写一个jsp计算结果

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here结果:${res }

最后再把加减乘除的计算方法写好

加:public class AddCalAction implements Action {	@Override	public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// TODO Auto-generated method stub		String num1 = req.getParameter("num1");		String num2 = req.getParameter("num2");		req.setAttribute("res", Integer.valueOf(num1)+Integer.valueOf(num2));		req.getRequestDispatcher("calRes.jsp").forward(req, resp);			}}	减:public class delCalAction implements Action {	@Override	public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// TODO Auto-generated method stub		String num1 = req.getParameter("num1");		String num2 = req.getParameter("num2");		req.setAttribute("res", Integer.valueOf(num1)-Integer.valueOf(num2));		req.getRequestDispatcher("calRes.jsp").forward(req, resp);			}}	乘:public class ChengCalAction implements Action {	@Override	public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// TODO Auto-generated method stub		String num1 = req.getParameter("num1");		String num2 = req.getParameter("num2");		req.setAttribute("res", Integer.valueOf(num1)*Integer.valueOf(num2));		req.getRequestDispatcher("calRes.jsp").forward(req, resp);			}}	除:public class ChuCalAction implements Action {	@Override	public void execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// TODO Auto-generated method stub		String num1 = req.getParameter("num1");		String num2 = req.getParameter("num2");		req.setAttribute("res", Integer.valueOf(num1)/Integer.valueOf(num2));		req.getRequestDispatcher("calRes.jsp").forward(req, resp);			}}

结果如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转载地址:https://blog.csdn.net/shaobina/article/details/93508607 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:通用分页2
下一篇:使用vue-ci搭建SPA项目

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月25日 02时59分35秒