Spring-MVC从入门到精通

参数通过网页贯穿技术三层控制第二版
目录(单击可跳转对应目录)
1.SPRINGMVC是什么......................................................... 1
1.1初步认识SPRINGMVC.................................................. 1
1.2框架原理讲解........................................................ 3
1.3简单的DEMO......................................................... 4
1.4SPRINGMVC与MYBATIS的整合........................................... 9
1.5注解开发........................................................... 12
1.6参数绑定........................................................... 13
1.7自定义参数绑定..................................................... 14
1.8SPRINGMVC与STRUTS的区别........................................... 15
2.SPRINGMVC的高级应用.................................................... 15
2.1集合类的参数绑定................................................... 15
2.2数据校验........................................................... 18
2.3数据回显........................................................... 21
2.4全局异常处理....................................................... 21
2.5图片上传........................................................... 23
2.6JSON数据交互....................................................... 24
2.7RESTFUL风格........................................................ 26
2.8配置拦截器......................................................... 27

**************************************************************************************************************************************************************

1.SPRINGMVC是什么
1.1 初步认识SPRINGMVC
①SPRINGMVC是SPRING的一个模块,所以SPRINGMVC和SPRING无需中间整合层进行整合的;SPRINGMVC是一个基于MVC的WEB框架;
②MVC是什么;MVC是一个设计模式;MVC在BS系统下的应用如下;

**************************************************************************************************************************************************************

1.2 框架原理讲解
组件介绍:
A.前端控制器:org.springframework.web.servlet.DispatcherServlet
作用:接受请求,响应结果,相当于一个转发器
B.处理器映射器HandlerMapping
作用:根据url请求查找Handler
C.处理器适配器HandlerAdapter
作用:按照(HandlerAdapter要求的规则)规则去执行Handler。所以编写Handler的使用要按照HandlerAdapter的要求来做,来开发。
D.视图解析器:ViewResolver
作用:进行视图解析,根据逻辑视图名解析成真正的视图。
E.视图View
租用:它是一个接口,实现支持不同View类型(jsp,excel,pdf等等),需要程序员开发。

**************************************************************************************************************************************************************

1.3 简单的DEMO
①说表与表的关系的时候一定要结合实际的业务场景A单表的分析 B表与表分析 C表与业务的分析;
②环境准备
③需求
④配置前端控制器
<!-- springmvc前端控制器 ,实现注解类的自动装配 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通过它contextConfigLocation来加载配置的spring的xml配置内容(处理器映射器/处理器适配器==)如果不配置,默认加载的是/WEB-IN/servlet名称-servlet.xml(springmvc-servlet.xml)--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/spring/sm.xml</param-value></init-param></servlet><!-- 定义访问模式为.action --><servlet-mapping><servlet-name>springmvc</servlet-name><!-- 第一种:*.action。访问以.action结尾由DispatcherServlet进行解析; 第二种:/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析, 我们要配置不让DispatcherServlet进行解析。使用此种方法可以实现RESTful风格的url 第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由 DispatcherServlet进行解析jsp地址,它不能根据jsp页面找到Handler,会报错 --><url-pattern>*.action</url-pattern></servlet-mapping>
⑤配置处理器映射器
⑥开发Handler
⑦配置视图编写
⑧配置处理器映射器
⑨配置视图解析器与调试
⑩注解与非注解处理器、映射器再认识
A.注解类型的
B.非注解类型的
C.开发中都是用注解类型的
①源码分析:
②入门小程序总结:

**************************************************************************************************************************************************************

1.4 SPRINGMVC与MYBATIS的整合
①需求:
②环境准备:
③整合DAO层:
A.XML文件配置
B.写实体类与接口和MAPPER.XML文件配置

**************************************************************************************************************************************************************

1.5 注解开发
①商品修改功能开发:
②地址映射:
③Controller方法的返回值:
A.普通返回值
B.页面重定向
C.页面转发

**************************************************************************************************************************************************************

1.6 参数绑定
①参数绑定过程:
②支持绑定参数类型:
A.简单类型
B.乱码解决

**************************************************************************************************************************************************************

1.7 自定义参数绑定
①POJO自定义与日期类型:

**************************************************************************************************************************************************************

1.8 SPRINGMVC与STRUTS的区别

**************************************************************************************************************************************************************

2.SPRINGMVC的高级应用
2.1 集合类的参数绑定
①包装类型的参数绑定:
②数组类型的参数绑定:(还有一种书籍购买项目中用到)
③集合类型LIST绑定
注意:DIV中央页面加载注意与首页面class 和id等不要重复。如idManyModify就是避免与首页idMany重复。

**************************************************************************************************************************************************************

2.2 数据校验
①服务端校验的必要性:
②环境准备:
③配置校验器
④校验器注入到处理器适配器
⑤在实体类中添加校验规则
⑥配置检验提示信息(可以直接打上去,配置反而麻烦)与Controller的配置
⑦返回用户页面展示
⑧分组校验
A.需求:
B.解决方案:
C.控制器的编写

**************************************************************************************************************************************************************

2.3 数据回显
①数据回显是什么:就是输入数据查询后,具体数据仍然展示在页面

**************************************************************************************************************************************************************

2.4 全局异常处理
①异常处理思路
②具体配置:
③文件SPRING.XML配置
④异常定义位置,是否手动抛出

**************************************************************************************************************************************************************

2.5 图片上传
①需求:
②配置SRPING.XML文件:
③控制器指定图片存放位置
④JSP页面代码
⑤实体类与页面关系

**************************************************************************************************************************************************************

2.6 JSON数据交互
①JSON交互的原因:
②SPRINGMVC与JSON交互
③环境准备:
④交互配置:

**************************************************************************************************************************************************************

2.7 RESTFUL风格
①RESTFUL是什么:
②实际DEMO:
③WEB.XML的配置:
④静态资源解析:

**************************************************************************************************************************************************************

2.8 配置拦截器
①拦截器的概述与定义:
②拦截器的配置SPRING.XML
③拦截器测试:
A.两个拦截器的编写
B.两个拦截器都放行
C.拦截器1放行,2不放行
D.拦截1不放行,2不放行
④日志拦截器的配置:
A.日志配置
B.SPRING.XML配置
用log4j配置控制台打印日志与文件记录日志,日志处理的拦截器要放到第一个而且
必须是放行的。
⑤请求URL不同进行拦截
A.URL与SESSION决定是否放行
B.控制器的代码
C.拦截器的代码
D.特殊SESSION关怀类配置
这个类很厉害,第一它实现了缓存绑定监听,有全局缓存的作用。第二它里面又有要设置的
参数,所以提交就完成了自动设置(不用像教程那样再单独设置一次)。第三它还实现了会
话的变动与自动销毁,保证只要缓存不在用户也会清空(原来必须点退出),进而实现了实
时在线的真正监控。可见接口的重要性和自己POJO包装参数的重要性。
E.对URL与SESSION拦截的再讨论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习java的static

1.static是什么&#xff0c;用来做什么&#xff1f; static-静态&#xff0c;可以修饰成员变量和成员方法。 2.成员变量按照有无static修饰&#xff0c;分为两种 类变量&#xff1a;有static修饰&#xff0c;属于类&#xff0c;在计算机中&#xff0c;会被类的全部对象所共享…

基于php+mysql+html超市商品管理系统(含论文)

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

【数据结构-之八大排序(下),冒泡排序,快速排序,挖坑法,归并排序】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 …

eve 导入linux

mkdir /opt/unetlab/addons/qemu/linux-centos7 cd /opt/unetlab/addons/qemu/linux-centos7 上传hda.qcow2 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions Linux images - (eve-ng.net) Due to very high demand of this section and problems with how to crea…

【车载开发系列】MCAL基本概念

【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念 【车载开发系列】MCAL基本概念一. BSW与MCAL1&#xff09;BSW-服务层2&#xff09;BSW-ECU抽象层3&#xff09;MCAL驱动层 二. MCAL基本概念三. MCAL组成1&#xff09;PORT2&#xff09;DIO3&#xff09;ADC4&#…

阿里云开源大模型开发环境搭建

ModelScope是阿里云通义千问开源的大模型开发者社区&#xff0c;本文主要描述AI大模型开发环境的搭建。 如上所示&#xff0c;安装ModelScope大模型基础库开发框架的命令行参数&#xff0c;使用清华大学提供的镜像地址 如上所示&#xff0c;在JetBrains PyCharm的项目工程终端控…

1688详情,搜索,店铺,图搜

简要描述\n根据商品id获取详情数据\n请求URL\nhttp://xxx.xxx.xxx.xxx:xxxx/get_item\n请求方式\nget\n请求Query参数\n参数名 示例值 必选 类型 说明\nitemid 590347769363 是 string 商品id\ntoken admin.api 是 string 权限token\nsales_data 2 是 string 2\nchannel 0 否 s…

第六十六章 Apache 的替代选项 (Windows) - Microsoft Windows 的锁定 Apache 环境

文章目录 第六十六章 Apache 的替代选项 (Windows) - Microsoft Windows 的锁定 Apache 环境Microsoft Windows 的锁定 Apache 环境推荐选项的配置&#xff1a;Apache API 模块 (CSPa24.dll)替代选项 2 的配置&#xff1a;带有 NSD 的 CGI 模块 (nph-CSPcgi.exe)替代选项 3 的配…

【SSL 1974】鹊桥(DFS)

题目大意 据说银河是一个树形结构&#xff0c;共有 N N N 个星球&#xff0c;每到七夕时&#xff0c;喜鹊会在星球之间搭起桥&#xff0c;共有 N − 1 N−1 N−1 座鹊桥。 牛郎和织女就会从两个不同的位置出发&#xff0c;沿着最短路相向而行&#xff0c;并在途中相会。 假设…

机器人正反向运动学(FK和IK)

绕第一个顶点可以沿Z轴转动&#xff0c;角度用alpha表示 绕第二个点沿X轴转动&#xff0c;角度为Beta 第三个点沿X轴转动&#xff0c;记作gama 这三个点构成姿态&#xff08;pose&#xff09; 我们记第一个点为P0&#xff0c;画出它的本地坐标系&#xff0c;和世界坐标系一样红…

SpringCloud知识点梳理

1. Spring Cloud 综述 1.1 Spring Cloud 是什么 [百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格…

(C语言)文件操作与函数,超详解

目录 1. 文件 1.1 为什么使用文件&#xff1f; 1.2 什么是文件&#xff1f; 1.2.1 程序文件 1.2.2 数据文件 1.3 文件名 1.4 二进制文件和文本文件 2. 文件的打开和关闭 2.1 流和标准流 2.1.1 流 2.1.2 标准流 2.2 文件指针 2.3 文件的打开和关闭 3. 文件的顺序…

更改 DeepXDE 的后端

DeepXDE 库为科学计算和工程优化等领域提供了深度学习方法&#xff0c;是一个非常有用的工具。其中一个重要的功能是它允许用户自定义后端。在本文中&#xff0c;我们将指导如何更改 DeepXDE 的后端&#xff0c;并且验证更改是否成功。 更改 DeepXDE 的后端 DeepXDE 支持多种…

Go Web 开发【Gin 框架快速开发】

1、Gin Web 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了&#xff0c;在 Goland 命令行中输入下面的命令&#xff1a; go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败&#xff0c;最好设置一下代理&#xff0c;在 cmd 命令行中输…

深度学习论文:Local Feature Matching Using Deep Learning: A Survey

深度学习论文: Local Feature Matching Using Deep Learning: A Survey Local Feature Matching Using Deep Learning: A Survey PDF: https://arxiv.org/pdf/2401.17592 1 概述 近年来&#xff0c;深度学习模型的引入引发了对局部特征匹配技术的广泛探索。本文旨在全面概述局…

创建并管理Python虚拟环境:深入理解venv

引言 Python作为一门广泛应用于Web开发、数据分析、人工智能等领域的编程语言&#xff0c;其生态系统中的第三方库数量庞大且种类繁多。随着项目复杂度的增加&#xff0c;管理不同项目间的依赖关系变得尤为重要。venv&#xff0c;全称为Virtual Environment&#xff0c;是Pyth…

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式&#xff1a; urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

POWERBI==官网教程

地址 COVID-19 tracking sample for US state and local governments - Power BI | Microsoft Learn 已经非常全面了

JSON教程(非常详细)

参考文章来源&#xff1a;JSON教程&#xff08;非常详细&#xff09; 目录 JSON JSON 发展史 为什么要使用 JSON&#xff1f; JSON 的不足 存储格式 使用场景 1) 定义接口 2) 序列化 3) 生成 Token 4) 配置文件 JSON语法规则 JSON 与 JavaScript 对象的区别 JSON数…

解决Pycharm全局搜索与输入法简繁切换快捷键冲突问题

Pycharm中全局搜索快捷键Ctrl Shift F 如图所示&#xff1a; 微软输入法简繁切换快捷键设置&#xff1a; 解决办法&#xff1a; 关掉输入法的切换功能即可&#xff0c;或者更改简繁切换快捷键&#xff0c;毕竟简繁切换使用频率极低。