简单的MVC框架实现

1.MVC(Model View Controller)

MVC是什么?

是一种软件架构思想、其核心思想是,要将数据处理与数据展现分开,按照这种思想,可以将一个软件划分成三种不同类型的模块,分别是模型、视图和控制器。
模型负责数据处理(业务逻辑)、视图负责数据展现(表示逻辑)、控制器负责协调模型和视图(请求要先发送给控制器,由控制器选择对应的模型来处理;模型返回的处理结果也要先发送给控制器,由控制器选择对应的视图来展现)。

如何使用MVC来开发一个web应用?

使用Servlet来充当控制器,使用jsp充当视图,使用java类来充当模型。
三者的关系如下图所示:

在这里插入图片描述

MVC的优点

a.方便代码的维护。

比如,视图发生变化(修改了视图的代码或者增加了新的视图,不影响模型)。

b.方便测试。

比如,将代码写在java类里面,可以直接测试,不需要部署整个应用。

c.方便分工协作。

2.实现一个简单的MVC框架(smartmvc)

(1)SmartMVC是什么?

是一个简单的MVC框架,实现了一个通用的控制器,开发人员利用该框架,只需要写业务逻辑和表示逻辑。

(2)架构

在这里插入图片描述

(3)各个组件的关系

在这里插入图片描述

步骤:

  • step1.新建一个maven工程(smartmvc-exec)。
  • step2.导包。(dom4j)
  • step3.添加login.jsp(/WEB-INF/login.jsp)。
    jsp文件添加在WEB-INF文件夹内,用户不可以字节访问,需通过servlet访问
  • step4.添加@RequestMapping注解(base.common包下)。
//告诉JVM注解的存在时间到运行期
@Retention(value=RetentionPolicy.RUNTIME)
public @interface RequestMapping {
   
//声明一个属性,注意要用public,而且后面由小括号。用来储存请求路径
	public String value();
}
  • step5.添加LoginController(controller包下)。
public class LoginController {
   
	@RequestMapping("/toLogin.do")
	public String toLogin() {
   
		System.out.println("LoginController.toLogin()");
		return "login";
	}
	@RequestMapping("/login.do")
	public String login(HttpServletRequest request) {
   
		System.out.println("LoginController.login()");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if("tom".equals(username)&& "1234".equals(password)) {
   
			System.out.println("正确,重定向成功页面");
		/*
		 * 如果视图名是以redirect:开头,表示重定向
		 */
			//因为浏览器无法直接访问jsp文件,所以无法直接重定向,这里返回一个请求地址,由下面的方法处理
		return "redirect:toSuccess.do";
		}else {
   
			request.setAttribute("login_failed", "用户名或密码错误");
			System.out.println("错误,转发登录页面");
			return "login";
		}
	}	
	@RequestMapping("/toSuccess.do")
	public String toSuccess(){
   
		return "success";//视图名
	}
	
  • step6.添加smartmvc.xml(配置有处理器的类名)。
    这个是用来给servlet使用反射实例化处理器(处理业务逻辑的类)
<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<bean
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值