CGB2005 0915 jt16

在这里插入图片描述
不加.html是方便搜索引擎好检索

在这里插入图片描述

关于跨域的说明

在这里插入图片描述
聚合工程

在这里插入图片描述
在这里插入图片描述
访问了页面 才会访问ajax 打印json
在这里插入图片描述
在这里插入图片描述

关于跨域的说明

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
结论: 域名地址不相同时请求不能正常获取响应的结果.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动两个服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
f12
在这里插入图片描述
在这里插入图片描述
综上总结
在这里插入图片描述

在这里插入图片描述

同源策略介绍

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

概括: 浏览器解析ajax时,由于请求违反了同源策略则称之为跨域请求.
在这里插入图片描述
概况
:浏览器解析ajax时,由于请求违反了同源策略则称之为跨域请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子: http://localhost:8091/xxx.html
http://manage.jt.com/xx.html 不可以通讯
因为http://manage.jt.com/xx.html 经过了nginx代理服务器

jsonp实现跨域

在这里插入图片描述
web-对应网址 ww.jt.com
在这里插入图片描述
script 的src 写的url 不受同源请求策略的影响
在这里插入图片描述
在这里插入图片描述
对应上图 调用函数的证据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现
在这里插入图片描述
在这里插入图片描述

JSONP官方做法(江哥)

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

<!--该json一直保存到浏览器中等待调用,但是没有函数名称无法调用  -->
	<script type="text/javascript" src="http://manage.jt.com/test.json"></script>

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

/*定义回调函数  */
		function hello(data){
			alert(data.name);
		}

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

hello({"id":"1","name":"tomcat猫"})

总结
jt-web里面
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jsonp只能支持get请求
在这里插入图片描述
在这里插入图片描述
不需要手动封装了
在这里插入图片描述
测试案例
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
自我实现

访问
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
新建测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原先
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
自我是实现
在这里插入图片描述
在这里插入图片描述
报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解释return callback+"("+json+")";
分析ajax 原理不变
在这里插入图片描述
后端业务的controller
在这里插入图片描述
全新的 分开

前后台分离
在这里插入图片描述

都是json
在这里插入图片描述

新的API调用

总结 都是www.jt.com跨域去访问manage里面的json数据

借助src去访问 共性jsonp 还有利用工具API

编辑的html时 jt-web里面的JSONP.html controller编写的时jt-manage是里面的JSONPController 去对被访问的manager进行桥接

在这里插入图片描述
在这里插入图片描述
api测试自我实现
在这里插入图片描述
在这里插入图片描述
完美实现
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CORS跨域 是最简单的跨域 需要服务器标注就行

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

拿manage里面的 test.html和test.json举例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CORS跨域说明
在这里插入图片描述
例子 进小区 主人给了礼物让带走 保安检查是不是偷的 需要标识(主人的字条) 标识就等于字条

在这里插入图片描述
前台向后台 服务器运行才行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
晚上 缺图 (over)
在这里插入图片描述

默认是30min

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

跨域测试

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

自我实现 CORS跨域方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前台web服务器 到 后台manage服务器 通知服务器 开放浏览器的允许 就行

在这里插入图片描述
在这里插入图片描述
下午

京淘单点登录系统

2.1 通用页面跳转
2.1.1 业务分析
1.注册的url地址
京淘单点登录系统创建
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自我实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建jt-sso项目

创建JT-SSO项目 JT-SSO项目说明

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

<!--添加依赖-->
    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>jt-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

    </dependencies>

    <!-- 添加插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.3.RELEASE</version>
            </plugin>
        </plugins>
    </build>

POJO表
在这里插入图片描述
在这里插入图片描述
搭脚手架
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
conf
在这里插入图片描述
在这里插入图片描述
自我实现
更改好yml配置文件 和 nginx的conf配置文件
搭脚手架
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述完美实现

开始实现注册登录

在这里插入图片描述
在这里插入图片描述
前后端开发

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
分析js
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
校验的业务分析
在这里插入图片描述
在这里插入图片描述
自我实现
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

16.14 晚上 回看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现

/**
* JSONP的跨域请求 特殊的格式封装…
* 需求分析:校验用户的数据是否可用.
* url: http://sso.jt.com/user/check/{param}/{type}
* 参数: param/type
* 返回值结果: SysResult对象
*/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现效果如下
在这里插入图片描述

还缺dao层 查询数据库校对 已有basemapper 不用手动查
在这里插入图片描述
http://sso.jt.com/user/check/addxxx/1?r=0.2782759446132195&callback=jsonp1600158461341&_=1600158464802

要加callback
在这里插入图片描述
在这里插入图片描述

 /**
     * JSONP的跨域请求  特殊的格式封装.....
     * 需求分析:校验用户的数据是否可用.
     * url: http://sso.jt.com/user/check/{param}/{type}
     * 参数: param/type
     * 返回值结果: SysResult对象
     */
    @RequestMapping("/check/{param}/{type}")
    public JSONPObject chcekUser(@PathVariable String param,
                                 @PathVariable Integer type,
                                 String callback){
        //根据信息查询数据库获取响应记录
        Boolean flag = userService.checkUser(param,type);
        return new JSONPObject(callback, SysResult.success(flag));
    }

自我实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

处理全局处理机制的修改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现
在这里插入图片描述

package com.jt.aop;

import com.fasterxml.jackson.databind.util.JSONPObject;
import com.jt.vo.SysResult;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import javax.servlet.http.HttpServletRequest;

@RestControllerAdvice   //作用: 标识我是一个通知方法,并且只拦截Controll层的异常.并且返回JSON.
public class SysResultException {

    //需要定义一个全局的方法 返回指定的报错信息.
    //ExceptionHandler 配置异常的类型,当遇到了某种异常时在执行该方法.
    //JSONP的异常处理应该是 callback({status:201,msg:"",data:""})
    //利用Request对象动态获取callback参数.之后动态封装返回值
    @ExceptionHandler(RuntimeException.class)
    public Object exception(Exception e, HttpServletRequest request){
        e.printStackTrace();
        String callback = request.getParameter("callback");
        if(!StringUtils.isEmpty(callback)){ //jsonp请求
            return new JSONPObject(callback, SysResult.fail());
        }
           //日志记录/控制台输出. 让程序员知道哪里报错!!!
        return SysResult.fail();
    }
}

为了更好的让程序员知道后台出了什么错
怎么去试错

微服务框架的介绍

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
17.18一番话
jsonp 浏览器解析ajax xxxxxxxxxxx在这里插入图片描述

入门案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自我实现

HttpClient入门案例

导入jar包

<!--添加httpClient jar包 -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>

入门案例

package com.jt.test;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.jupiter.api.Test;

import java.io.IOException;

public class TestHttpClient {

    /**
     * 步骤:
     *  1.实例化httpClient工具API
     *  2.定义请求url地址  任意网络地址....
     *  3.定义请求的类型  get/post/put/delete
     *  4.发起请求,获取响应的结果
     *  5.判断响应的状态码信息.  200 404 500 406 400....
     *  6.动态解析返回值执行后续操作.
     */
    @Test
    public void test01(){
        HttpClient httpClient = HttpClients.createDefault();
        String url = "https://www.baidu.com/";
        HttpGet get = new HttpGet(url);
        try {
            HttpResponse httpResponse = httpClient.execute(get);
            //判断状态码是否正确
            int statusCode = httpResponse.getStatusLine().getStatusCode();
            if(statusCode == 200){
                //表示请求正确
                HttpEntity httpEntity = httpResponse.getEntity(); //获取服务器的全部响应信息(json/html/xml/xxxx)
                String result = EntityUtils.toString(httpEntity,"UTF-8");
                //获取之后可以执行业务处理......
                System.out.println(result);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值