MVC模式
- MVC模式是指Model-View-Controller(模型-视图-控制器)模式,是开发Web应用程序时常用的一种代码分层模式。
- MVC模式是软件工程中的一种架构模式,会强制性地把系统的输入、处理和输出分开,使系统从功能上形成Model-View-Controller三个基本部分。
视图(View)
对应组件:JSP或者HTML文件:负责格式化数据并把它们呈现给用户,包括数据展示、数据验证、界面设计等。
控制器(Controller)
对应组件:Servlet:负责接收并转发请求,对请求进行处理后指派视图并将响应结果发送给客户端。
模型(Model)
对应组件:JavaBean:模型对象拥有最多的处理任务,是应用程序的主体部分,它负责业务逻辑的处理和实现对数据的操作。
JSP Model1
JSP Model2
- Servlet:接受前端请求并调用JavaBean
- JavaBean:处理业务并操作数据库
- JSP:将处理结果响应到浏览器呈现给用户
MVC的优点
- MVC三个模块相互独立,松耦合架构
- 多视图共享一个模型,大大提高代码的可重用性
- 控制器提高了应用程序的灵活性和可配置性
- 有利于软件工程化管理
MVC的缺点
- 增加了系统结构和实现的复杂性,不适合小型规模的项目
- 视图层与模型之间需要控制器做中间的连接控制,所以效率较低
Spring MVC架构
介绍
- Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
- Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。
特点
- 用Controller替换JSP Model2模型中的Servlet
- Controller收到请求后,完成业务处理并用Model模型对象存储处理结果
- Controller调用相应的视图解析器View对处理结果进行视图渲染,最终客户端得到响应信息
SpringMVC环境搭建(在前面Spring整合Mybatis的基础上)
1.创建控制器Controller
public class HelloController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
System.out.println("HelloSpringMVC...");
ModelAndView m = new ModelAndView("index.jsp");
return m;
}
}
2.创建springmvc配置文件,并添加Controller的Bean
springmvc-servlet.xml
<?xml version="1.0" encoding="UTF8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<bean name="/hello