关于什么是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--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中的路径改为配置类的路径,和修改容器类型,修改为支持配置类的容器
关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置的更多相关文章
- SpringMVC入门(基于XML方式实现)
----------------------siwuxie095 SpringMVC 入门(基于 XML 方式实现) (一)搭建 SpringMVC 环境 1.先下载相关库文件,下载链接: (1)ht ...
- SpringMVC快速使用——基于XML配置和Servlet3.0
SpringMVC快速使用--基于XML配置和Servlet3.0 1.官方文档 https://docs.spring.io/spring-framework/docs/5.2.8.RELEASE/ ...
- spring基于xml的声明式事务控制配置步骤
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
环境搭建 新建工程 把对应的依赖复制过来 src下内容复制 配置spring中的声明事物 找到bean.xml开始配置 配置事物管理器 里面需要注入DataSource 2-配置事物通知 需要先导入事 ...
- Spring中基于XML的声明式事务控制配置步骤
1.配置事务管理器 2.配置事务的通知 此时,我们就需要导入事务的约束 tx名称空间和约束,同时也需要aop的 使用tx:advice标签配置事务通知 属性: id:给事务通知起一个唯一标识 tran ...
- springmvc——基于xml的异常映射和基于注解的异常映射
SpringMVC提供了基于XML和基于注解两种异常映射机制.这两种异常映射不能够只使用一个,他们需要一起使用.因为有些异常是基于注解异常映射捕获不到的. 在springmvc中,一个请求如果是由&l ...
- spring基于XML的声明式事务控制
<?xml version="1.0" encoding="utf-8" ?><beans xmlns="http://www.sp ...
- Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较
本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...
- 基于XML配置的Sping AOP详解
一.编写基本处理方法 package com.kang.sping.xml.aop; public class Math{ //加 public int add(int n1,int n2){ int ...
- spring基于xml的事务控制
opm配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http: ...
随机推荐
- 每天进步一点点——mysql——mysqlbinlog
一. 简单介绍 mysqlbinlog:用于查看server生成的二进制日志的工具. 二. 命令格式 mysqlbinlog 选项日志文件1 三. 经常使用參数 ...
- uglifyjs 合并压缩 js, clean-css 合并压缩css
本文主要介绍如何通过CLI命令行(也就是终端或者cmd打开的那个shell窗口)实现 js和 css 的合并压缩. uglifyjs 合并压缩 js: 1.安装node 这一步就不多说了,下载node ...
- SSH使用小记
0.是什么 SSH(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境.(更多详情可参阅维基百科 https://zh.wikipedia.org/wi ...
- MySql快速插入以及批量更新
MySql快速插入以及批量更新 插入: MySql提供了可以一次插入多条数据的用法: [sql] INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6), ...
- xib view frame 大小调整
1.IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题) 很多时候,我们自定义tableview.colle ...
- 自己动手实现RPC
一.需求:用户管理系统(UMS),仓库管理系统(WMS),订单管理系统(OMS) 现在OMS有一张订单表:[订单id,用户id,商品id,订单状态,订单时间],需要在客户端展示此订单对应的用户详情和商 ...
- ubuntu开机后弹出System program problem detected的解决办法
sudo gedit /etc/default/apport 将enabled=1改为enabled=0保存退出重启后就可以了
- 【CF542D】Superhero's Job 暴力
[CF542D]Superhero's Job 题意:$ f(x)=\sum\limits_{d|x,gcd(d,{x\over d})=1} d$ 给出 $A$ ,求方程 $f(x)=A$ 的正整数 ...
- RE:从零开始的莫比乌斯反演
炫酷反演魔术根本看不懂啊...也就看看PoPoQQQ的ppt了. 这个赛季结束了,一年可以学很多很多东西呢. 因为我是写给自己看的所以写的很垃圾. 公式: 按我的理解,反演就是 x可以表示成y,然后 ...
- 17、php
php 1.WEB服务的三大组件 ==apache .php . mysql== Apache服务器.(端口号定义,==http协议==,开启和关闭) 一种开放源码的HTTP服务器,可以在大多数计 ...