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拦截的再讨论
相关推荐
荆州克莱14 分钟前
腾讯二面:MySQL的半同步是什么?不是MySQL的两阶段提交,那是什么?
spring boot·spring·spring cloud·css3·技术
栗豆包12 小时前
w148基于spring boot的文档管理系统的设计与实现
java·spring boot·后端·spring·tornado
杂货铺的小掌柜15 小时前
spring mvc源码学习笔记之七
学习·spring·mvc
杂货铺的小掌柜15 小时前
spring mvc源码学习笔记之九
学习·spring·mvc
孇雙16 小时前
SpringBoot之核心配置
java·spring boot·spring
胡尔摩斯.17 小时前
Mybatis
java·后端·spring·mybatis
ccmjga17 小时前
升级 Spring Boot 3 配置讲解 — 新版本的秒杀系统怎么做?
java·spring boot·后端·spring·gradle·maven·spring security
杂货铺的小掌柜19 小时前
spring mvc源码学习笔记之十
学习·spring·mvc
十秒耿直拆包选手20 小时前
spring:xml声明bean的多种方式。
xml·java·spring
Stimd20 小时前
【重写SpringFramework】第三章小结(chapter 3-16)
java·后端·spring