关于什么是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中的路径改为配置类的路径,和修改容器类型,修改为支持配置类的容器

 

原文地址:https://www.cnblogs.com/hq1997/p/10732439.html