1.关于跨域的说明

1.1 跨域访问测试

测试1: 同服务器测试
说明:
1.浏览器的网址信息: http://manage.jt.com/test.html
2.ajax请求的地址信息: http://manage.jt.com/test.json

发现: 请求协议名称://域名:端口号都相同时,请求可以正常进行.

测试2: 不同的服务器测试
说明:;
1.浏览器的网址信息: http://www.jt.com/test.html
2.ajax请求的地址信息: http://manage.jt.com/test.json
结论: 域名地址不相同时请求不能正常获取响应的结果.

1.2 同源策略介绍

说明:
浏览器在解析ajax时,如果发现请求的协议名称://请求的域名:请求的端口号与网址的地址都相同的时满足同源策略的规定,浏览器可以正确的解析返回值.该访问称之为同域访问.该策略叫做同源策略.
但是如果违反了同源策略中的任意一条,则叫做跨域访问.浏览器出于安全性的考虑.不予解析返回值(请求正常的被处理,但是接收不到返回值).

概括: 浏览器解析ajax时,由于请求违反了同源策略则称之为跨域请求.
JT-16
JT-16
例子: http://localhost:8091/xxx.html
http://manage.jt.com/xx.html 不可以通讯

1.3 JSONP实现跨域

1.3.1 JSONP实现跨域的原理(有难度)

1.javaScript中的src属性不受同源策略的约束.可以获取远程服务器数据.

JT-16

2.自定义回调函数 名称任意

JT-16

3.将返回值结果进行特殊的格式封装 callback(JSON);

JT-16

1.3.2 JSONP优化策略

1.利用script中的src属性发起请求不方便.不便于程序使用. 能否封装为ajax调用方式
2.在请求路径中拼接一个参数一般的key都是约定俗称的 http:xxx/xx?callback=“自定义函数名称”
3.动态的获取callback的参数名称之后进行特殊的格式封装 callback(JSON);

1.3.3 JSONP概念

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的

1.3.3 JSONP的Ajax调用

JT-16

1.3.4 编辑后台Controller返回数据

JT-16

1.3.5 编辑JSONPObject对象

JT-16

1.3.6 关于ajax请求时间毫秒数的说明

说明:由于浏览器内部有缓存机制,所以如果遇到了一个相同的请求地址,浏览器可能会使用之间的结果.(使用缓存),但是有些数据必须要求浏览器重数据库中动态获取数据,为了避免浏览器缓存一般在url最后添加随机数或者时间毫秒数区分url请求.实现该功能.
JT-16

1.4 CORS跨域方式

1.4.1 跨域访问测试

JT-16
JT-16

1.4.2 CORS跨域说明

说明:当下的主流的浏览器默认支持cors跨域的形式,但是需要服务器添加响应的信息.否则浏览器不支持数据的获取.
JT-16

1.4.3 编辑CORS配置类

说明:在jt-common中添加CORS的配置类
JT-16

1.4.4 跨域测试

JT-16
JT-16

2. 京淘单点登录系统

2.1 通用页面跳转

2.1.1 业务分析

1.注册的url地址

JT-16

2.登录的url地址

JT-16

2.1.2 编辑UserController

JT-16

2.1.3 页面效果展现

JT-16

2.2 创建JT-SSO项目

2.2.1 JT-SSO项目说明

作用:主要为jt-web的服务器提供用户的数据的支持,但凡涉及到user的CRUD操作都应该由该系统完成.
打包方式: jar包程序
注意事项: 继承jt/ 依赖jt-common 添加插件.
端口号: 8093
JT-16

2.2.2 创建项目

JT-16

2.2.3 编辑pom.xml配置文件

JT-16

2.2.4 编辑User的POJO对象

JT-16

2.2.4 实现JT-SSO代码结构

JT-16

2.2.5 编辑Nginx实现反向代理

注意hosts文件的配置. 修改nginx之后重启服务器.
JT-16

2.3 用户数据校验的分析

2.3.1 页面url分析

JT-16

2.3.2 检索页面JS

JT-16

2.3.3 页面JS分析

JT-16

2.2.6 单点登录业务接口

JT-16

2.2.7 编辑jt-sso的UserController

JT-16

2.2.8 编辑jt-sso的UserService

JT-16

2.2.9 页面效果展现

JT-16

2.2.10 修改全局异常处理机制

JT-16

3.微服务框架介绍

3.1远程调用的说明

浏览器解析ajax发起跨域请求.程序虽然可以正确的调用,但是浏览器可以监控用户的所有的参数及返回值.在一些特定的条件下该操作不安全.
一般使用跨域的请求都是用来获取其他服务器的数据(查询操作),如果遇到了POST需要提交的参数应该使用更加安全的请求方式实现.

3.2 HttpClient介绍

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。现在HttpClient最新版本为 HttpClient 4.5 .6(2015-09-11)
JT-16

3.3 HttpClient入门案例

3.3.1 导入jar包

JT-16

3.3.2 入门案例

JT-16

相关文章:

  • 2021-11-24
  • 2021-08-06
  • 2021-04-10
  • 2021-05-14
  • 2021-07-21
  • 2021-10-23
  • 2022-01-22
猜你喜欢
  • 2021-12-15
  • 2021-05-18
  • 2021-04-17
  • 2022-01-24
  • 2021-10-01
  • 2021-06-02
  • 2021-12-05
相关资源
相似解决方案