当前位置: 首页 > wzjs >正文

网站建设推广销售话术查询类网站用什么做

网站建设推广销售话术,查询类网站用什么做,南庄九江网站建设,宁波高等级公路建设指挥部网站这段代码的目的是实现一个自定义的 JSONP(JSON with Padding)响应体处理器,利用 AbstractJsonpResponseBodyAdvice 中的功能,根据请求参数将 JSON 对象包装成 JSONP 格式,从而支持跨域请求。 代码分析 import org.sp…

这段代码的目的是实现一个自定义的 JSONP(JSON with Padding)响应体处理器,利用 AbstractJsonpResponseBodyAdvice 中的功能,根据请求参数将 JSON 对象包装成 JSONP 格式,从而支持跨域请求。

代码分析

import org.springframework.http.HttpOutputMessage;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;@ControllerAdvice
public class MyJsonpAdvice extends AbstractJsonpResponseBodyAdvice {public MyJsonpAdvice() {// 指定支持的回调参数名称和媒体类型super("callback", "json");}@Overrideprotected void writeResponseBody(Object responseBody, HttpOutputMessage outputMessage) throws Exception {// 调用父类的方法以生成 JSONP 格式super.writeResponseBody(responseBody, outputMessage);}
}

主要功能

  1. @ControllerAdvice:

    • 使得这个类可以作为一个全局的控制器建议(Advice),可以对所有被 @RequestMapping 注解标注的方法进行预处理和后处理。
  2. 构造函数参数:

    • super("callback", "json"):
      • "callback": 指定请求参数名,表示请求中应该提供一个名为 callback 的参数,客户端通过这个参数指定回调函数名称。
      • "json": 指定支持的媒体类型,这里表示适用于 JSON 媒体类型的请求。
  3. writeResponseBody 方法:

    • 这个方法被重写以实现自定义的响应体写入逻辑。在这里,它调用父类的实现,即将响应对象封装为 JSONP 格式,形式上是 callbackFunction({"key": "value"})

拦截的控制器方法示例

这个 JSONP 适配器会拦截所有返回 JSON 格式响应的方法。以下是一些可能触发它的示例控制器方法:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@GetMapping("/data")public MyResponse getData(@RequestParam String param) {// 假设 MyResponse 是一个 POJO,用于返回 JSON 数据return new MyResponse(param);}
}

请求示例

假设上面的 MyController 有一个方法 getData,客户端可能会发起以下请求以调用 JSONP:

GET /data?callback=myCallbackFunction

处理流程

  • 请求到达:

    • 当客户机发出上述请求时,Spring MVC 将查找处理此请求的控制器方法(在本例中是 getData),并调用该方法。
  • JSON 响应处理:

    • getData 方法返回一个 MyResponse 对象,该对象最终会转换为 JSON 格式。
  • 进入MyJsonpAdvice:

    • 由于请求中包含 callback 参数,MyJsonpAdvice 被 Spring MVC 的处理链调用。在这里,writeResponseBody 将自动被调用。
  • JSONP 格式响应:

    • writeResponseBody 方法将会把返回的 JSON 对象包装成 JSONP 格式。最终的响应形式类似于:
    myCallbackFunction({"param": "value"});
    
  • 跨域请求成功:

    • 由于将 JSON 数据包装在一个 JavaScript 函数调用中,这种响应可以被浏览器正确处理,从而解决了同源策略限制。

总结

通过实现 MyJsonpAdvice,您可以使 Spring 应用能够支持 JSONP 格式的响应,从而允许跨域请求。在函数式编程风格的现代 Web 开发中,尽管 JSONP 的使用有所减少(主要由于 CORS 的出现),它仍然是一些场景中的重要技术。

http://www.dtcms.com/wzjs/590831.html

相关文章:

  • 国家网站建设的相关规定梵客家装和业之峰家装哪个好
  • 如何做网站答题领红包链接网站开发最流行的语言
  • 网站提交收录入口室内装修设计联盟
  • 网站模板开发主要作用公司网站建立教程
  • 创新网站设计网站页面多少
  • 国企网站建设合同如何自己制作链接内容
  • 网站建设合同书样本建设通查项目经理
  • 建设小网站教程扬中吧百度贴吧
  • 做网站哪个公司比较好网站主机哪买
  • 深圳网站建设企导航网站移动端流量占比
  • 当当网网站建设步骤网页制作需要学多久
  • 网站建设实训个人总结1000字上海营销型网站建设价格
  • 建设工程质量安全管理体系网站做网站的人搞鬼少首页文件
  • 商务网站建设管理思路网站建设教学视频
  • 菏泽正耀网站建设公司怎么样网站布局的好坏的几个要素
  • 做网站六安企业网站建设存在的不足与困难
  • 做有网被视频网站seo词库排行
  • 深圳网络营销网站免费注册网站大全
  • 钢结构网站建设域名网站查询
  • 制作个人网站步骤网站建设需要多少钱小江网页设计
  • 深圳网站建设服务器公司豪柏大厦做网站的公司
  • 上海人才网官网站首页邯郸网络营销推广平台
  • 网站内页布局的不同常德公交网站
  • 常德网站建设厦门网站制作wordpress主题在哪里
  • 营销单页模板网站莱芜做网站的商家有哪些
  • 个人网站建设咨询电话外贸数据分析网站
  • 微信如何做有趣的短视频网站计算机类专业包括哪些
  • 找个免费的网站千图app的优势
  • 网站内部链接的作用有哪些桂林哪里学建设网站
  • 湖南网站seo推广网络系统集成工程师