关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置
首先我们先要了解一下,什么是SpringMVC?
SpringMVC是Spring框架内置的MVC的实现。SpringMVC就是一个Spring内置的MVC子框架,也就是说SpringMVC的相关包都在Spring框架里面。
什么是MVC设计模式?
M(Molde模型)、V(View视图)、C(Control控制器),MVC设计模式是一种解决页面代码和后台代码分离的设计思想。这也是SpringMVC的设计理念。
SpringMVC的作用?
支持方法和请求一一对应、支持数据的自动封装、自动支持上传组件、自动支持JSON的转成、...
MVC的 "作用域"
配置流程图:
在流程控制图中我们为什么要有一个核心控制器呢?(DispatcherServlet)
因为我们必须要有一个核心控制器(也可以叫拦截器)拦截请求过来的方法,从而实现了请求与方法一一对应
那么除了要有核心控制器以外我们还需要注意什么呢?
当然我们还要一个定义,用来指定请求与方法的关系!
springmvc的配置流程:
1.导入包(5个spring基础包,1个抑制包,1个web包,一个webmvc包)
2.编写一个请求页面发送一个请求
3.配置核心控制器用于拦截所有的请求,用到了一个控制跳转页面的类DispatchServlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>springmvc-demo-01-xml</display-name> <!-- 配置一个核心控制器用来拦截所有的请求 --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定配置文件的路径 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>calsspath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
4.构建一个业务控制器 继承一个MultiActionController类
package cn.yytt.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; public class HelloController extends MultiActionController{ @Override public ModelAndView say(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("感觉很糟糕!"); ModelAndView modelAndView = new ModelAndView("/hello.jsp"); return modelAndView; } }
5.编写一个spring配置文件
6.编写一个返回的jsp页面
SpringMVC的注解配置:
基于xml的基础上,controller层的代码,再将配置文件中换成扫描器
package cn.gzsxt.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; @Controller public class HelloController extends MultiActionController{ @RequestMapping(value="/say.do") public ModelAndView say(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("感觉很糟糕!"); ModelAndView modelAndView = new ModelAndView("/hello.jsp"); return modelAndView; } }
SpringMVC纯注解配置
由于纯注解配置,没有配置文件,有注解类,故需要创建一个新的存放注解的config编写注解类,还需要将web.xml中的路径改为配置类的路径,和修改容器类型,修改为支持配置类的容器