zoukankan      html  css  js  c++  java
  • 关于什么是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中的路径改为配置类的路径,和修改容器类型,修改为支持配置类的容器

     

  • 相关阅读:
    python-实现选择排序
    python-实现冒泡排序
    python-实现双端队列
    python-实现队列结构
    python-实现单向循环链表
    类型转换
    uint64_t类型输出为十六进制格式
    python文件的写入与读出
    linux系统中安装虚拟机
    IPv4和IPv6地址的存取
  • 原文地址:https://www.cnblogs.com/hq1997/p/10732439.html
Copyright © 2011-2022 走看看