SpringMVC笔记(1)
一、SpringMVC简介
1.1 MVC模型
MVC模型
MVC全名是Model View Controller,是模型(model)- 视图(view)- 控制器(controller)的缩写,是一种用于设计创建web应用程序表现层的模式。MVC中每个部分各司其职:
1、Model(模型):
通常指的就是我们的数据模型。作用一般情况下用于封装数据。
2、View(视图):
通常指的就是我们的jsp或者html。作用一般就是展示数据的。通常试图是依赖模型数据创建的。
3、Controller(控制器)
是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。它相对于前两个不是很好理解,这里举个例子:
我们要保存一个用户的信息,该用户信息中包含了姓名,性别,年龄等等。这时候表单输入要求年龄必须是1 ~ 100之间的整数。姓名和性别不能为空。并且把数据填充到模型之中。此时除了js的校验之外,服务器端也应该有数据准确性的校验,那么校验就是控制器该做的。当校验失败后,由控制器负责把错误页面展示给使用者。如果校验成功,也是控制器负责把数据填充到模型,并且调用业务层实现完整的业务需求。
1.2 SpringMVC介绍
简介:
SpringMVC是一种基于Java的实现MVC设计模式型的请求的驱动类型的轻量级Web框架,属于Spring Framework的后续产品。
它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTFUL编程风格。
流程图示:
1.3 快速入门
步骤:
-
导入SpringMVC包
<!-- spring-mvc--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.0.5.RELEASE</version> </dependency>
-
配置DispathcerServlet(前端控制器)
web.xml中
<!-- 配置SpringMVC的前端控制器--> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
-
编写Controller
/** * Bean注入 */ @Controller public class UserController { //添加请求映射 @RequestMapping("/save") public String save(){ System.out.println("Controller saving.."); return "success.jsp"; } }
-
将Contrller使用注解配置到Spring容器中并配置业务方法的映射地址(@Controller,@RequestMapping)
-
配置spring-mvc.xml(配置组件扫描)
spring-mvc.xml中
<!-- 配置controller的组件扫描--> <context:component-scan base-package="controller"></context:component-scan>
二、SpringMVC组件解析
2.1 SpringMVC的执行流程
2.2 SpringMVC注解解析
-
@RequestMapping
作用: 用于建立请求 URL 和处理请求方法之间的对应关系。
类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录。
写的话需要以/开头。 它出现的目的是为了使我们的 URL 可以按照模块化管理:方法上: 请求 URL 的第二级访问目录。
属性: value:用于指定请求的 URL。它和 path 属性的作用是一样的。
method:用于指定请求的方式。
params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的 key 和 value 必须和 配置的一模一样。
例如: params = {"accountName"},表示请求参数必须有 accountName params = {"moeny!100"},表示请求参数中 money 不能是 100。 -
@Controller
需要在spring-mvc.xml中配置
2.3 XML配置
返回时可以选择重定向或者转发
return "redirect:success.jsp";
可以在spring-mvc.xml中配置内部资源视图解析器
<!-- 配置内部资源视图解析器-->
<bean id ="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp"/>
<property name="suffix" value=".jsp"/>
</bean>