SpringMVC 简介
1、SpringMVC概述
SpringMVC是一种基于java的实现MVC设计模型的请求驱动类型的轻量Web框架,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow中。
SpringMVC已经成为目前最主流的MVC框架之一, 并且随者Spring3.0 的发布,全面超越Struts2,成为最优
秀的MVC框架。它通过一套注解, 让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时
它还支持RESTful编程风格的请求。
1.1、需求:客户端发请求,服务端接请求,搜索逻辑并进行视图跳转。
1、导入SpringMVC依赖
2、配置SpringMVC核心控制器DispatcherServlet
3、编写Controller类和视图界面
4、使用注解@Controller类中业务方法的映射地址
5、配置SpringMVC和性文件中spring-mvc.xml
6、客户端发起请求测试
1.2、快速入门
1.2.1、导入MVC依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
1.2.2、配置servlet
<!--配置前端控制器-->
<servlet>
<servlet-name>DispatchcerServlet</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>DispatchcerServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
1.2.3、编写controller和视图页面
public class UserController {
public String save(){
System.out.println("Controller save running......");
return "success.jsp";
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>你好</title>
</head>
<body>
</body>
</html>
1.2.4、将controller配置到spring容器中
@Controller
public class UserController {
@RequestMapping("/quick")
public String save(){
System.out.println("Controller save running......");
return "success.jsp";
}
}
1.2.5、配置mvc参数添加包扫描,在web.xml文件中添加MVC配置
<servlet>
<servlet-name>DispatchcerServlet</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>
1.2.6、运行结果
1.2.7、代码逻辑
1.2.8、流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HBJFYaZH-1621000116339)(C:/Users/%E5%BB%BF%E5%85%AB%E5%8D%81/AppData/Roaming/Typora/typora-user-images/image-20210514104306947.png)]
2、SpringMVC组件解析
2.1、SpringMVC的执行流程
底层组件的角度
①用户发送请求至前端控制器DispatcherServlet。
②Dispatcher Servlet收到请求调用HandlerMapping处理器映射器。
③处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
④DispatcherServlet调用HandlerAdaptter处理器适配器
⑤HandlerAdpter经过调试器调用具体的处理器(controller,也叫后端控制器)
⑥controller执行完成返回ModelAndView
⑦HandlerAdpter将controller执行结果ModelAndView返回给DispatcherServlet
⑧DispatcherServlet将ModelAndView传给ViewReslover视图解析器
2.2、spring注解解析
@RequestMapping 请求映射,用于建立请求URL和请求处理
@RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username"})
method请求方式;
params请求携带的参数;
2.3 mvcXML的配置解析
配置内部资源视图解析器
prefix 前缀
suffix 后缀
通过拼接得到需要转发(重定向)的视图地址
<!--配置内部资源视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/jsp/"/>
<property name="prefix" value="forward:/jsp/"/>
<property name="prefix" value="redirect/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
2.4 知识要点
2.4.1、Springmvc的相关组件
前端控制器:DispathcherServlet
处理器映射器:HandlerMapping
处理器适配器:HandlerAdapter
处理器:Handler
视图解析器:View rResolver
视图:View
2.4.2 SpringMVC的注解与配置
请求映射注解:@RequestMapping
视图解析器配置:
REDIRECT_ URL_ PREFIX = “redirect:”
FORWARD_ URL_ PREFIX = “forward:”
prefix=“”;
suffix=“”;