-
2021-03-08 19:42:42
在项目开发中,有时候我们需求在拦截器中获取@responsebody的返回值,但是在我的知识体系中没有方法获取,(除非研究源码),但是在springMVC4版本以后,新加了一个@ControllerService注解。用此注解然后实现ResponseBodyAdvice接口可获取带有@responsebody的返回值,然后操作。
然后在springmvc拦截器中afterCompletion的方法中进行获取。
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// 将handler强转化为handlermethod
HandlerMethod handlerMethod = (HandlerMethod) handler;
// 从方法处理器中获取要调用的方法
Method method = handlerMethod.getMethod();
//获取返回结果
Object result = request.getAttribute("response");
//获取当前类
Class> clazz = method.getDeclaringClass();
//获取当前的类名
String className = clazz.getName();
//获取当前的方法名
String methodName = method.getName();
//转化为json
String jsonResult = "";
if(result != null) {
jsonResult = JSON.toJSONString(result);
}
}
更多相关内容 -
python 接口测试response返回数据对比的方法
2020-09-20 19:00:59本篇文章主要介绍了python 接口测试response返回数据对比的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
java返回数据的ResponseEntity
2021-03-08 21:52:001.ResponseEntity实体类(对HashMap的封装)package com.kexin.common.util;...public class ResponseEntity extends HashMap {public static ResponseEntity success(String message){ResponseEntity ...1.ResponseEntity实体类(对HashMap的封装)
package com.kexin.common.util;
import java.util.HashMap;
public class ResponseEntity extends HashMap {
public static ResponseEntity success(String message){
ResponseEntity response = new ResponseEntity();
response.setSuccess(Boolean.TRUE);
response.setMessage(message);
return response;
}
public static ResponseEntity failure(String message){
ResponseEntity response = new ResponseEntity();
response.setSuccess(Boolean.FALSE);
response.setMessage(message);
return response;
}
public ResponseEntity setSuccess(Boolean success) {
if (success != null) put("success", success);
return this;
}
public ResponseEntity setMessage(String message) {
if (message != null) put("message", message);
return this;
}
public ResponseEntity setAny(String key, Object value) {
if (key != null && value != null) put(key, value);
return this;
}
}
2.返回调用eg
return ResponseEntity.failure("验证码不能为空");
return ResponseEntity.success("操作成功");
ResponseEntity responseEntity = new ResponseEntity();
responseEntity.setSuccess(Boolean.TRUE);
responseEntity.setAny("url","index");
return responseEntity;
-
Vue.js使用axios动态获取response里的data数据操作
2020-11-19 17:56:56今天开发时,使用axios返回的response中data有多个数据: 如果是获取cn里的数据的,可以用: response.data.cn 但是需求是根据选择来获取数据的,会发生变化,最开始的想法是,用一个变量来记录需要获取的key: ... -
HTTP中response响应数据获取
2021-07-08 00:01:02http的响应数据是封装在response中的,如果需要获取响应的具体内容我们可以通过下面的方法简单获取到 package main import ( "fmt" "io/ioutil" "net/http" ) func responseBody(r *http.Response){ content, ...http的响应数据是封装在response中的,如果需要获取响应的具体内容我们可以通过下面的方法简单获取到
package main import ( "fmt" "io/ioutil" "net/http" ) func responseBody(r *http.Response){ content, _ := ioutil.ReadAll(r.Body) fmt.Printf("%s", content) //{ // "args": {}, // "headers": { // "Accept-Encoding": "gzip", // "Host": "httpbin.org", // "User-Agent": "Go-http-client/1.1", // "X-Amzn-Trace-Id": "Root=1-60e46d3a-016b7ff6190e1c577abb9c40" //}, // "origin": "222.211.214.252", // "url": "http://httpbin.org/get" //} } func status(r *http.Response){ fmt.Println(r.StatusCode) //状态吗 200 fmt.Println(r.Status) //状态描述 200 OK } func header(r *http.Response){ str := r.Header.Get("Content-type") fmt.Println(str) } func main(){ resp, err := http.Get("http://httpbin.org/get") if err != nil { panic(err) } defer func() {_ = resp.Body.Close()}() responseBody(resp) status(resp) header(resp) }
-
filter 修改jsp servlet response返回的内容
2019-07-13 02:20:19NULL 博文链接:https://guava.iteye.com/blog/748956 -
关于原生ajax获取后台servlet的response返回的数据问题
2019-10-11 14:39:06在一次回顾原生ajax获取后台数据时遇到了如下问题: 后台servlet使用了重定向将前端页面ajax传过来的值做了一个判断,然后返回结果给前端去弹框显示,如下代码: response.getWriter.print(); response.sendRedict(...在一次回顾原生ajax获取后台数据时遇到了如下问题:
后台servlet使用了重定向将前端页面ajax传过来的值做了一个判断,然后返回结果给前端去弹框显示,如下代码:response.getWriter.print(); response.sendRedict("index.html");
前端接收主要代码:
var msg = xhr.responseText; alert(msg);
然后弹窗直接显示的是一块HTML的代码,后来把重定向代码注释后,显示的才是msg的内容,之后又把response.getWriter.print();进行注释(重定向未注释),发现弹窗是代码片段,所以认为重定向返回的是一个页面并且会覆盖,又想了一下感觉不严谨,如果是 response.getWriter.print()**;和response.sendRedict(“index.html”);
这两行返回的数据间隔太短,所以导致前端接收的太快才认为是重定向的数据覆盖,所以servlet改了一下代码response.getWriter().print(msg);
Thread th = new Thread(); th.run(); try { th.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.sendRedirect("index.html");
让程序在两行代码卡5秒看会不会看到两个弹窗,结果就是没有msg的弹窗,等5秒后才有代码段的弹窗,那么是不是*response.getWriter().print(),*返回的数据是跟随重定向的页面而去返回的呢!?但是开头就试验过没有重定向,他也能回传数据,所以创建了一个新的test.html页面,运行的时候发现重定向功能居然没执行!
天哪! servlet的重定向居然没有执行,然后上网查了一下,别人也有这样的问题(此处可上网搜索 关键词“ajax会不会重定向”)原来ajax只会做获取数据的工作,其他请求一概无视
想到这里,就是重定向返回的代码片段把上面一行的msg的数据覆盖了,所以如果在重定向后面再加一个返回msg那是不是就能返回msg了
结果最终返回的还是代码段,把代码段注释,又加了几个response.getWriter().print(),都能返回但是只要有重定向,重定向后面的数据好像返回不了总结:ajax只做获取返回数据的工作,不会处理其他的请求
-
过滤器通过HttpServletResponseWrapper包装HttpServletResponse实现获取response中的返回数据,以及对数据...
2017-11-24 11:47:39前几天我们项目总监给了我一个任务,就是将请求的接口数据进行压缩,以达到节省流量的目的。...4.将response返货前端但是,当我执行第一步的时候,就遇到了很蛋疼的事情,response中的返回数据拿不到,这里 -
Response返回JSON数据到前台页面
2021-02-26 12:44:42简述:在servlet填充Response的时候,做JSON格式的数据转换使用的类是net.sf.json.JSONObject,传入response对象和返回的显示类,修改response,返回前台JSON格式数据代码:/***以JSON格式输出*@paramresponse*/... -
springboot工程自定义response注解、自定义规范化返回数据结构
2020-09-02 18:38:30springboot工程通过自定义response注解、java反射机制、自定义java拦截器、自定义功能类实现WebMvcConfigurer接口等功能,实现自定义规范化返回数据结构。 -
java web 处理response返回数据
2018-07-23 22:03:47工作的时候遇到一个需求,同样的接口返回给App端的json数据需要将数值型改成字符型,而之前传给网页端的比如一些分页数据、时间戳、id等是数值的。 于是打算加一个拦截器拦截请求,在controller执行完后,如果是传... -
Java获取响应头response header
2020-12-22 19:44:34import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Map; import java.util.Set;... public class CheckHttpResposneHeaders { public static void main... -
java – 如何从Retrofit onResponse返回方法中的数据?
2021-03-08 19:42:25我是改装的新手,我想让我的getData方法返回一个功能对象.最简单的方法是什么?DataService.javapublic class DataService {private static final String TAG = MainActivity.class.getSimpleName();private final ... -
【Servlet】response对象给用户返回数据
2019-08-19 18:28:20* 用来响应数据到浏览器的一个对象 * 使用: * 设置响应头 * setHeader(String name,String value); // 在响应头中添加响应信息,但是同键会覆盖。 * addHeader(String name,String value)... -
为SpringBoot写一个简单的Response返回数据处理
2020-11-09 20:21:30为SpringBoot写一个简单的Response返回数据处理 对于每次的数据返回处理,是不是很厌烦,每次都要封装对象,形成统一的返回格式 return ResultVO.success(i); 这次通过aop思想统一处理 @ControllerAdvice ,... -
Response返回JSON数据
2018-06-21 22:08:29HttpServletResponse 返回Json数据 resp.setCharacterEncoding("utf-8"); resp.setContentType("application/json; charset=utf-8"); PrintWriter writer = resp.getWriter();... -
使用ResponseEntity统一返回数据
2021-11-05 14:11:36使用ResponseEntity统一返回状态码和数据 它是Spring提供的一个类,它内部封装了状态码,请求头,请求体等信息,可以根据自己的需要去设置状态码、请求体的信息。ResponseEntity中的泛型用于指定请求体的类型,并且... -
Servlet Response直接返回JSON数据
2020-12-27 16:46:18打印输出流:response.getWriter() 返回的是 PrintWriter 可以通过 response.getWriter().write()和response.getWriter().print()响应数据给客户端,如果前端没有接收数据的位置,就会在浏览器上生成一个新的页面来... -
通过Response返回Json格式数据给前端
2021-06-24 18:17:35Map<Object, Object> map = new HashMap<>(); map.put("success",false); map.put("message","验签失败"); ... String jsonMap = new ObjectMapper().writeValueAsString(map);... response.getWriter(.. -
request获取前端参数,response返回数据到前端
2018-12-21 22:51:40System.out.println("*******************数据发送到前台*******************"); ControJsonMap.clear(); } } catch (IOException e) { Log4j.Log4JOutError(e.getMessage()); } } } 结果... -
java怎么从HttpServletResponse里面获取返回给前端json数据?
2021-02-12 16:26:001,现在需要从过滤器里面获取HttpServletResponse,再从HttpServletResponse获取返回给前端的json数据。2,场景,当用户发生了增删改的操作的时候,获取用户操作的url,参数,然后根据操作是否成功,若是成功,那么... -
JSP数据交互:request、response对象
2021-05-24 10:28:23JSP数据交互之request对象 JSP内置对象是 Web 容器创建的一组对象 一、request对象主要用于处理客户端请求 1、什么是request? request是Servlet.service()方法的一个参数, 类型为javax.servlet.... -
SpringMVCDay02-01Response,返回数据库数据到前端
2021-11-15 16:16:14【1】经过了day01的学习,我们已经学到了怎么获取表单或者单个从页面传过来的数据,今天我们就学习怎么把数据库中的数据传到页面上去。 【2】首先我们还是需要在web.xml中引入前端控制器以及中文编码过滤器,然后在... -
XMLHttpRequest获取后台response返回的数据
2019-03-05 16:37:42XMLHttpRequest获取后台response返回的数据 开发MVC网站的过程中遇到令人头疼的bug——在js中通过XMLHttpRequest获取后台返回的数据竟然是当前页面的Html代码!!! 后台Controller: public class ... -
SpringCloud GateWay 网关 在GlobalFilter 拿出返回数据response
2021-08-17 11:35:55文章主旨: 将返回数据拿出来,然后各种处理。 正文 先看该篇文章的示例接口: 红色框框里面就是返回的response 数据 。 现在我们想要的就是 在返回给到调用方(前端、第三方等)前,我们抓出来数据,随便... -
java response通用返回
2021-02-12 16:25:56java response通用返回编程语言• Java• 611次浏览• 0次点赞• 2019-04-25 12:42场景后台 接口统一返回 code、message、dataresponseEntityimport com.maox.common.enums.ResponseEnums;import lombok.Data;/*** ... -
获取response结果信息
2020-04-01 16:55:04过滤器获取response结果中的信息 实现功能中碰到需要获取返回信息中的自定义code public class CustomFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ... -
拦截器中通过response返回JSON数据
2020-10-22 16:24:49做接口的拦截器时,需在拦截器中通过response返回JSON信息 response.setCharacterEncoding( "UTF-8"); response.setContentType( "application/json; charset=utf-8"); PrintWriter out = null ; try{ ...