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拦截的再讨论
相关推荐
萧瑟余晖8 小时前
Java深入解析篇十七之Spring Security
java·开发语言·spring
Flittly13 小时前
【雕虫大技】Agent 动态 Skill 供应链安全加固(二):执行隔离沙箱实战
java·spring boot·spring
BUG指挥官1 天前
Sa-Token和Spring Security对比
java·后端·spring
geminigoth1 天前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring
xbgRS2 天前
spring整合mybaits
java·spring·mybatis
ruleslol2 天前
静态依赖注入 VS 动态依赖查询
spring
墨雨晨曦882 天前
Spring AI总结
java·人工智能·spring
用户3126874877202 天前
Spring Boot 异常处理到底怎么玩的?从 DispatcherServlet 到全局兜底的全链路拆解
spring
不才不才不不才2 天前
Spring 源码系列(17): HandlerMapping 与 HandlerAdapter 两大体系
java·后端·spring
(轻舟已过万重山)2 天前
第40章 Spring AI 实战:企业级 AI 应用架构
人工智能·spring·架构