一、路径匹配
@RequestMapping 路径定义
@RequestXXXX 开头表示从 Request 里面拿数据
@PathXXXX 开头表示从 URL 里面拿数据
二、请求参数绑定
使用 request 和 response (包括 httpxxx)默认
使用同名参数 (形参),参数不一样可以用 @RequestParam 绑定
使用实体类
1.非 json 格式,前端 application/x-www-from-urlencoded 或者 multipart/form-dat
2.Json 格式,前端 application/json,后端需加上 @RequsetBody 注解
总结
请求参数最终要么是以键值对(键值对可以分散来,或者作为一个整体),或者集合,或者 json 格式
三、对请求参数的处理
1.Formater 和 converter
2.自定义 converter 并且注册
四、数据响应
(一)前后端未分离
- 处理器返回 String 对象:转发到字符串指定的 URL
- 处理器返回 void, 表示执行完处理器方法体内代码后,不进行请求转发,而直接转发到当前 URL.
- 处理器返回 ModelAndView 对象:更灵活地添加属性和指定返回视图
(二)前后端分离
@Responsebody 直接返回 json 数据
五、转发和重定向
- 转发共用 request 域
- 重定向需要重新设置 request 的内容
六、作用域传递值
- page(PageContextImpl):当前 jsp 页面范围内有效
- request(HttpServletRequest):一次请求响应范围有效,同一客户端的不同请求,无法获取域对象中的值.Model, ModelAndView,ModelMap 数据就会自动放入 Request 作用域。场景:转发。
- session(HttpSession):一次会话范围有效,同一客户端在一次会话内的多个请求,都可以获取到 session 保存作用域内的值;可以看成一次浏览器关闭。场景:购物车。
- application(ServletContext):一次应用程序范围;可以看成一次服务器关闭。场景:网页访问计数;重复登录判断。
七、文件上传下载
- 前端: 表单的 enctype 属性取值必须是 multipart/form-data
- 思路: 解析 request 对象和 response 对象
- SpringMVC 配置文件解析器
- 跨服务器传递文件(文件服务器)
八、异常处理器
九、拦截器