---------------------------------------Spring与MVC的简介:
POJO:普通javaBean
IOC:控制反转
步骤:
1.导入SpringMVC包
2.配置Servlet
3.编写Controller(POJO)
能把普通的POJO通过Bean标签配置到Spring容器中
4.将Controller使用注解配置到Spring容器中(@Controller),还需要配置映射去找Cotorller里所需要的方法
5.配置spring-mvc.xml文件(配置组建扫描)
6.执行访问的测试
如下:
1.导入SpringMVC相关坐标
2.配置SpringMVC核心控制器DispathcerServlet
3.创建Controller类(UserController)和试图页面(webapp/success.jsp)
4.使用注解配置Controller类中业务方法的映射地址
5.配置SpringMVC核心文件spring-mvc.xml
6.客户端发起请求
------------------------------------------------流程图:
------------------------------------------------SpringMVC组建解析:
----------------------------------Spring执行流程:
----------------------------------------SpringMVC注解解析:
@RequestMapping:
----------------------------Method:
-------------------------Params:需要有username的参数才能访问到
----------------------------组建扫描:
另外一种写法:
在spring-mvc.xml下配置
在com.zmm下 include-filter 只扫描有@Controller的
exclude-filter除开什么都扫
--------------------------SpringMVC的xml文件配置解析:
---------------redirect(重定向)
---------------forward(转发):
---------------------在spring-mvc.xml中配置内部资源解析器
---------------------------------------SpringMVC的相关组件:
SpringMVC的注解和配置:
-------------------------------------------SpringMVC的数据响应:
SpringMVC的数据响应方式:
1.页面跳转
2.回写数据
页面跳转-返回字符串形式:
redirect和forward的区别:(大佬讲的很清楚可以去看看)
(2条消息) forward和redirect的区别是什么?_一行代码的自述的博客-CSDN博客_forward和redirect的区别
重定向(redirect):客户端再次请求的意思
页面跳转-返回ModelAndView对象:
通过request.setAttribute可以向request域中存储数据,再转发到页面显示数据
回写数据-直接返回字符串:(reponse.getWriter().println)重点!!!!!!!
需要使用到ResponseBody直接回写数据,而不是跳转去读取其他页面的数据
重点!!!!!!!、
---------------------------------------数据响应之json:
使用ObjectMapper实例化对象的writeValueAsString方法将对象转成json格式再返回
-----------------------------回写数据-返回对象或集合:
使用springmvc来实现json格式的字符串转换
配置映射器参数,注入一个jackson转换的转换器MappingJackson2HttpMessageConverter
后面会有更简单的办法!!!!
把你想要返回的对象或集合直接return就可以了-返回User类
----------------------------下面是更简便的jackson转换方法
使用方法:添加注解驱动<mvc:annotation-driven/>
以后在spring-mvc.xml中一定先把<mvc:annotation-driven></mvc:annotation-driven>写上。
---------------------------------SpringMVC获得请求数据:
1.获得基本类型参数:
空的,没有跳转页面
2.获得pojo类型数据:
3.获得数组类型参数:
4.获得集合类型参数:
第一种:
第二种:(RequestBody用在方法名里)
--------------------------开发资源的访问:
第一个是映射地址,第二个是实际地址
映射--->servlet里面的路径--->name匹配--->真实的地址
和上面效果相同
解决post请求控制台乱码:(本机未解决)
-------------------------参数绑定注解@requestParam:
绑定注解后, 请求参数变换成别的只要在加在value里也可以打印出来
required = false(默认为true):不输入请求参数,也能打印出来
dafaultValue:如果没有name请求参数,则返回默认值。
-------------------@Pathvariable
-------------------------------获得Restful风格参数:(重点)
自定义类型转换器:
先配制方法实现Converter接口
声明转换器
注解驱动
获得Servlet相关API:
apache.catalina相当于tomcat
-------------------------------------获得请求头:
@RequestHeader
@CookieValue
------------------------------------------文件上传:
1.文件上传客户端的三要素:
文件上传原理:
单文件上传步骤:
commos-fileupload和commons-io
class="CommonsMultiparResolver"
defaultRncoding utf-8
maxuploadsize -
upload.getOriginalFilename
upload.transferTo
多文件上传步骤:
黑马yyds
学习的路很遥远,一起坚持下去吧!