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拦截的再讨论
相关推荐
ACGkaka_15 分钟前
Spring Boot 实战(四十二):集成 Spring AI 六大场景
人工智能·spring boot·spring
卓怡学长16 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
李燚16 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
Listen·Rain21 小时前
向量化详解
java·人工智能·spring·机器学习·ai
添砖java_8571 天前
网页聊天室测试报告
java·spring boot·spring·maven
xixingzhe21 天前
Spring 依赖注入
java·后端·spring
闲猫1 天前
Spring AI 对接Deepseek ChatModel 聊天对话
java·前端·spring
醇氧2 天前
Spring 容器 Map 注入机制详解
java·后端·spring
ylscode2 天前
Cloudflare Workers Cache 深度解析:边缘缓存如何重塑无服务器性能边界
java·spring·mybatis
沉静的小伙2 天前
Spring事务
java·数据库·spring