首先我们先要了解一下,什么是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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <display-name>springmvc-demo--xml</display-name>
  4.  
  5. <!-- 配置一个核心控制器用来拦截所有的请求 -->
  6. <servlet>
  7. <servlet-name>dispatcherServlet</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <!-- 指定配置文件的路径 -->
  10. <init-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>calsspath:spring-mvc.xml</param-value>
  13. </init-param>
  14.  
  15. </servlet>
  16. <servlet-mapping>
  17. <servlet-name>dispatcherServlet</servlet-name>
  18. <url-pattern>*.do</url-pattern>
  19. </servlet-mapping>
  20.  
  21. <welcome-file-list>
  22. <welcome-file>index.html</welcome-file>
  23. <welcome-file>index.htm</welcome-file>
  24. <welcome-file>index.jsp</welcome-file>
  25. <welcome-file>default.html</welcome-file>
  26. <welcome-file>default.htm</welcome-file>
  27. <welcome-file>default.jsp</welcome-file>
  28. </welcome-file-list>
  29. </web-app>

4.构建一个业务控制器 继承一个MultiActionController类

  1. package cn.yytt.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.web.servlet.ModelAndView;
  7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
  8.  
  9. public class HelloController extends MultiActionController{
  10.  
  11. @Override
  12. public ModelAndView say(HttpServletRequest request, HttpServletResponse response) throws Exception {
  13.  
  14. System.out.println("感觉很糟糕!");
  15. ModelAndView modelAndView = new ModelAndView("/hello.jsp");
  16. return modelAndView;
  17. }
  18.  
  19. }

5.编写一个spring配置文件

6.编写一个返回的jsp页面

SpringMVC的注解配置:

基于xml的基础上,controller层的代码,再将配置文件中换成扫描器

  1. package cn.gzsxt.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
  10.  
  11. @Controller
  12. public class HelloController extends MultiActionController{
  13.  
  14. @RequestMapping(value="/say.do")
  15. public ModelAndView say(HttpServletRequest request, HttpServletResponse response) throws Exception {
  16.  
  17. System.out.println("感觉很糟糕!");
  18. ModelAndView modelAndView = new ModelAndView("/hello.jsp");
  19. return modelAndView;
  20. }
  21.  
  22. }

SpringMVC纯注解配置

由于纯注解配置,没有配置文件,有注解类,故需要创建一个新的存放注解的config编写注解类,还需要将web.xml中的路径改为配置类的路径,和修改容器类型,修改为支持配置类的容器

关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置的更多相关文章

  1. SpringMVC入门(基于XML方式实现)

    ----------------------siwuxie095 SpringMVC 入门(基于 XML 方式实现) (一)搭建 SpringMVC 环境 1.先下载相关库文件,下载链接: (1)ht ...

  2. SpringMVC快速使用——基于XML配置和Servlet3.0

    SpringMVC快速使用--基于XML配置和Servlet3.0 1.官方文档 https://docs.spring.io/spring-framework/docs/5.2.8.RELEASE/ ...

  3. spring基于xml的声明式事务控制配置步骤

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  4. 阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤

    环境搭建 新建工程 把对应的依赖复制过来 src下内容复制 配置spring中的声明事物 找到bean.xml开始配置 配置事物管理器 里面需要注入DataSource 2-配置事物通知 需要先导入事 ...

  5. Spring中基于XML的声明式事务控制配置步骤

    1.配置事务管理器 2.配置事务的通知 此时,我们就需要导入事务的约束 tx名称空间和约束,同时也需要aop的 使用tx:advice标签配置事务通知 属性: id:给事务通知起一个唯一标识 tran ...

  6. springmvc——基于xml的异常映射和基于注解的异常映射

    SpringMVC提供了基于XML和基于注解两种异常映射机制.这两种异常映射不能够只使用一个,他们需要一起使用.因为有些异常是基于注解异常映射捕获不到的. 在springmvc中,一个请求如果是由&l ...

  7. spring基于XML的声明式事务控制

    <?xml version="1.0" encoding="utf-8" ?><beans xmlns="http://www.sp ...

  8. Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较

    本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...

  9. 基于XML配置的Sping AOP详解

    一.编写基本处理方法 package com.kang.sping.xml.aop; public class Math{ //加 public int add(int n1,int n2){ int ...

  10. spring基于xml的事务控制

    opm配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...

随机推荐

  1. vim:放弃hjkl

    vim放弃使用hjkl,可以加快文本的编辑速度,不信,看我摘录的文章:http://vimcasts.org/blog/2013/02/habit-breaking-habit-making/ Wor ...

  2. [k8s] flexvolume workflow

  3. 阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件

    <阿里巴巴Java开发手册>: https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B ...

  4. C# 多线程中经常访问同一资源可能造成什么问题?

    竞态条件和死锁. 如果两个或多个线程访问相同的对象,或者访问不同步的共享状态 ,就会出现竞态条件: 为了避免出现该问题,可以锁定共享的对象.但是过多的锁定也会有麻烦,那就是死锁: 当至少有两个线程被挂 ...

  5. Dedecms判断当前栏目下是否有子栏目

    使用dedecms建网站,有时为了某种功能的需要,需要通过代码判断当前栏目下是否有子栏目,如果有,显示一种样式,如果没有,显示另一种样式. dedecms判断当前栏目下是否有子栏目可使用以下的代码进行 ...

  6. String 源码探究

    起因:忽然想到平时用的HashMap 当key是字符串的时候为什么总可以覆盖,然后看了String的源码发现: private final char value[]; private int hash ...

  7. 【Dubbo 源码解析】06_Dubbo 服务调用

    Dubbo 服务调用 根据上图,可以看出,服务调用过程为: Consumer 端的 Proxy 调用 Cluster 层选择集群中的某一个 Invoker(负载均衡) Invoker 最终会调用 Pr ...

  8. c# 正则

    Regex reg = new Regex("^do(es)(xy)?$"); var result = reg.Match("doesxy"); foreac ...

  9. Linux下查看设设置时间date命令

    查看时间 # date "+%Y_%m_%d  %H-%M-%S" 设置时间 #date -s "2018-05-17 09:51:50" //写入到硬件时钟 ...

  10. web.py框架之i18n支持

    问题: 在web.py的模板文件中, 如何得到i18n的支持? Solution: 项目目录结构: proj/ |- code.py |- i18n/ |- messages.po |- en_US/ ...