概述
SpringMVC详细笔记~
基于web层的解决方案框架
入门开发步骤
1.1引入依赖
1.2、编写核心配置文件,定义包扫描
1.3、配置前端控制器
1.4、编写控制器(Controller)
1.5、启动访问测试
2、SpringMVC技术架构
2.1、springmvc控制器编写方式
3、SpringMVC的常见配置
3.1、静态资源处理
因为之前对DispatcherServlet的访问路径配置的是 / ,虽然访问.jsp资源,不会执行该Servlet,但是访问其他静态资源(.html/js/css/png/jpg…)时,会执行该Servlet,从而导致静态资源访问不成功。
3.1.1、放行静态资源方式一:配置资源处理器(不推荐)
这种方式要将所有静态资源挨个配置,麻烦
3.1.2、放行静态资源方式二:启用默认Servlet
当我们的DispatcherServlet处理不了请求时,交给默认的Servlet处理
3.1.3、放行静态资源方式三:修改DispatcherServlet的访问路径
当我们配置 / 时,静态资源的访问也会交给DispatcherServlet,此时无法处理,我们可以配置成基于后缀的匹配方式,那么对于不符合后缀的访问就不会交给DispatcherServlet
3.2、请求参数乱码解决
3.2.1、post请求乱码解决-配置字符过滤器
3.2.2、tomcat7插件,get请求乱码解决
SpringMVC纯注解开发(理解为主)
使用纯注解,主要替代xml的两个配置文件:spring-mvc.xml和web.xml
==注意:==之前spring-mvc.xml文件是在web.xml中读取的,我们知道,服务器启动时,会自动解析web.xml;那么当我们采用纯注解配置时,如何自动去解析该配置类呢。这里我们会用到之前咱们提到的spi机制。
4.2、替代web.xml
5、SpringMVC请求
5.1、简单参数封装
5.2、复杂参数封装
5.2.1、集合/数组数据封装(了解)
5.3、时间类型的参数封装
之所以能进行参数封装,是因为内部有针对参数的转换器/格式化器,来完成数据类型的转换;如果源数据类型和要转换的目标数据类型不匹配时,就会导致封装失败;所以需要自定义转换器/格式化器
5.3.1 时间格式转化方式一
5.3.2时间转化方式二
5.4、获取其他请求数据
6、SpringMVC响应
6.1、资源跳转方式
资源跳转方式有转发和重定向两种,默认采用的是转发
6.1.1默认跳转
6.2.2、指定跳转方式
6.2、域对象响应数据方式(默认Request域)
6.2.1、返回资源路径
6.2.2、返回ModelAndView
6.2.3、指定session域存储
6.3、响应字符串/Bean对象
SpringMVC_day02
1、ajax和springmvc结合使用
1.1、@ReqeustBody的使用
1.2、跨域访问(@CrossOrigin)
浏览器基于安全考虑,当异步请求的请求源和请求的目标不满足同源策略(协议/ip或域名/端口都相同,称之为同源,否则不同源)时,浏览器会阻止响应数据到达请求源,此时需要目标资源设置响应头,实现跨域访问
1.2、springmvc拦截器使用
Filter,属于JavaEE技术,web组件之一,拦截请求,和响应
Interceptor,属于框架技术,拦截处理器方法
2.1、编写类拦截器
2.2、配置拦截器
2.3、拦截器链的执行效果
多个拦截器基于责任链设计模式关联在一起,按照某种顺序依次执行;
责任链设计模式对于这种顺序的维护常见的就两种形式:
① 链表
② 数组
2.3.1、多个拦截器执行效果代码理解
2.3.2、多个拦截器执行效果 图解
3、springmvc异常处理器使用
当处理器中出现异常时,可以由专门的异常处理器来完成统一的异常处理
3.1、方式一
3.2、方式二(注解形式)
3.3、异常通用处理
开发中,异常分为用户行为导致的,我们称之为业务异常, 这类异常只要提示用户对应信息即可,不需要后期修复程序;还有一类异常,需要后期修复程序来规避异常的产生,所以一般会记录异常信息到日志文件。
4、springmvc文件上传
springmvc内部,封装了fileupload的文件上传功能,直接引入组件,即可使用
4.1、引入FileUpload依赖
4.2、引入文件上传组件
4.3、编写Controller,实现文件上传(页面满足文件上传三要素)
5、restfull API使用
restfull是一种接口风格,请求的动作通过请求方式标识,请求参数隐藏在请求路径中
get请求,获取数据
post请求,提交数据
delete请求,删除数据
put请求,更新数据
5.1、添加restfull支持的过滤器
5.2、前台页面中,form内需要添加一个隐藏字段,定义请求方式
5.3、Controller中,通过@PathVariable获取路径中的参数
@RestController === @Controller + @ResponseBody
get请求
post请求
put请求
delete请求
SpringMVC_day03
1、后台校验(JSR303校验框架使用)
1.1、引入依赖
1.2、开启校验
1.3、编写校验器,实现合法性校验
2、ssm整合步骤(很详细,具体)
整合service和dao
添加依赖
基于三层结构,创建包结构
定义Dao接口
定义Servic层接口和实现类
添加spring的核心配置文件
包扫描(service&dao)
SqlSessionFactoryBean & MapperScannerConfigurer – 整合mybatis
DataSourceTransactionManager & tx:annotation-driven – 整合事务
aop:aspectj-autoproxy – 整合切面编程
定义dao接口的映射(xml配置/注解)
整合junit测试,完成业务层功能的测试
=====整合web + service和dao
添加springmvc核心配置文件
包扫描(controller)
mvc:annotation-driven
拦截器配置/静态资源放行/视图解析器(前后缀)/文件上传的解析器
配置web.xml
DispatcherServlet – 指定核心配置文件
POST请求乱码过滤器
实现PUT/DELETE请求的过滤器
配置ContextLoaderListener(ServeltContextListener)监听器 -- 在服务器启动时,加载业务层&dao层的ioc容器,并且实现父子容器的关联 -- 整合spring和springmvc
编写控制器
@RestController(@Controller+@ResponseBody)
@PathVariable
@GetMapper/@PostMapper/@PutMapper/@DeleteMapper**
以上是本人学习过程总结出来的一些笔记供大家参考,如有不对的地方诚恳的希望各位大佬指出
机会都是留给有准备的人,乾坤未定,你我皆是黑马
最后
以上就是机灵大侠为你收集整理的SpringMVC流程详细解答(已完结)SpringMVC详细笔记~SpringMVC_day02SpringMVC_day03的全部内容,希望文章能够帮你解决SpringMVC流程详细解答(已完结)SpringMVC详细笔记~SpringMVC_day02SpringMVC_day03所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复