理解mvc设计模式
一、 MVC设计模式(思想) 1. 理解MVC的术语 M(Model):模型层 对应组件:JavaBean V(VIEW):视图层 对应组件:HTML或者 Jsp C(Controller):控制器 对应的组件:Servlet- Jsp+servlet+Javabean(Model 2模式)开发模式与Mvc的关系
Jsp+servlet+javabean是实现mvc思想 - mvc的优点和缺点:
MVC 优点
a) 多视图共享一个模型,大大提高代码的可重用性
b) MVC三个模块相互独立,松耦合架构
c) 控制器提高了应用程序的灵活性和可配置性
d) 有利于软件工程化管理
MVC 缺点
a) 原理复杂
b) 增加了系统结构和实现的复杂性
c) 视图对模型数据的低效率访问
Springmvc工作原理
用户---->发请求---->核心控制器(DispatcherServlet)---->分发请求---->用户控制器---->调用模型层
视图进行呈现<----ModelAndView(视图模型对象)<----返回
使用springmvc框架:
- 导入springmvc相关的jar包(添加依赖)
<!-- 初始化框架的版本号 -->
<properties>
<spring.version>4.3.3.RELEASE</spring.version>
</properties>
<dependencies>
<!--spring支持的相关依赖和springmvc依赖(spring-web、spring-webmvc)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 引入Spring 依赖 end -->
2. 添加springmvc的配置文件(springmvc.xml):存于resources目录
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
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-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
">
<!--配置用户控制器的-->
</beans>
- 修改web.xml文件:配置核心控制器
<!--核心控制器
1.拦截所有的用户请求,并根据请求的名称分发到用户控制
2.读取sprignmvc配置文件
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--拦截的请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
注意 :
如果web.xml文件存在以下错误:没有servlet的环境
解决:在pom文件中添加以下依赖
<!--添加servlet的依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>