参数通过网页贯穿技术三层控制第二版
目录(单击可跳转对应目录)
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拦截的再讨论