继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第1天 SpringMVC

相信光变成光
关注TA
已关注
手记 10
粉丝 9
获赞 0

课程名称:Spring MVC入门与数据绑定

课程章节:第一章-第四章

课程内容:

一.URL Mapping
URL Mapping指将URL与Controller方法绑定
通过将URL与方法绑定,SpringMVC便可通过Tomcat对外暴露服务

@RequestMapping:通用绑定,作用在方法上,不再区分get/post请求
@GetMapping:绑定Get请求
@PostMapping:绑定Post请求

二.接收请求参数的常用做法

  • 使用Controller方法参数接收

  • 使用JavaBean接收数据

三.解决中文乱码的问题

1.Web应用的中文乱码由来
Tomcat默认使用字符集ISO-8859-1,属于西欧字符集
解决乱码思路是将ISO-8859-1转换为UTF-8
Controller中请求与响应都需要设置UTF-8字符集

2.中文乱码配置
Get请求乱码-server.xml增加URIEncoding属性, tomcat8.0以后默认是UTF-8
POST请求乱码 -web.xml配置CharacterEncodingFilter
Response响应乱码- Spring配置StringHttpMessageConverter

四.响应输出结果
@ResponseBody-产生响应文本
@ResponseBody直接产生响应体数据,过程不涉及任何视图
@ResponseBody可产生标准字符串/JSON/XML等格式数据
@ResponseBody被StringHttpMessageConverter所影响

ModelAndView-利用模板引擎渲染输出
ModelAndView对象是指模型(数据)与视图(界面)对象
通过ModelAndView可将数据对象与模板引擎绑定
SpringMVC默认的View是JSP,也可以是其他模板引擎

mav.addObject()方法设置的属性默认存放在当前请求中
默认ModelAndView使用请求转发(forward)至页面
重定向使用 new ModelAndView("redirect:/index.jsp")

1.方法被@ResponseBody描述,SpringMVC直接响应String字符串本身
2.方法不存在@ResponseBody,则SpringMVC处理String指代的视图(页面)

五.RESTful
1.开发风格
使用URL作为用户交互入口
明确的语义规范(GET,POST,PUT,DELETE)
只返回数据(JSON|XML),不包含任何展现

2.命名要求

URI说明修改建议
GET /articles?au=lily正确用法
GET/a/1URI必须具有语义GET /Student/1
POST/createArticle/1URI必须使用名词POST /article/1
GET /articles/author/1URI扁平化,不超两级GET /articles/author?id=1
DELETE /articles/1URI名词区分单复数GET /articles?au=lily DELETE /article/1

3.简单请求
指标准结构的HTTP请求,对应GET/POST请求

4.非简单请求包含俩种情况:
(1)复杂要求的HTTP请求,指PUT/DELETE
(2)在标准的GET/POST请求中扩展了额外的自定义请求头的话
两者最大区别是非简单请求发送前需要发送预检请求

六.浏览器的同源策略
只要协议,域名,端口有任何一个不同,都被当作是不同的域
浏览器Console看到Access-Control-Allow-Orign就代表跨域了

源URL目标URL直接访问 ?
http://imooc.comhttp:abc.imooc.com不能
http://localhosthttp://127.0.0.1不能

1.HTML中允许跨域的标签
< img>显示远程图片
< script>加载远程JS
< link>加载远程CSS

2.CORS跨域资源访问
CORS是一种机制,通过在HTTP请求以及响应头的部分增加一些额外信息,通知浏览器可以访问其他域的资源

URL响应头包含 Access-Control-* 指明请求允许跨域

3.SpringMVC解决跨域访问
@CrossOrign -Controller跨域注解

<mvc:cors > SpringMVC全局跨域配置

七.拦截器
拦截器用于对URL请求进行前置/后置过滤
Interceptor与Filter用途相似,但实现方式不同
Interceptor底层就是基于SpringAOP面向切面编程实现的

1.拦截器开发流程
Maven依赖servlet-api
实现HandlerInterceptor接口
applicationContext配置过滤地址

课程收获:

http://img1.mukewang.com/635ff1dc0001dc9e13700668.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP