Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpServlet:提取输入请求json和输出响应json_Java_Spring Mvc_Servlets_Interceptor - Fatal编程技术网

Java HttpServlet:提取输入请求json和输出响应json

Java HttpServlet:提取输入请求json和输出响应json,java,spring-mvc,servlets,interceptor,Java,Spring Mvc,Servlets,Interceptor,我有一个通过http公开的RESTFul服务。它需要POST请求的Json输入。请指导我如何从HttpServletRequest和HttpServletResponse对象中提取Json输入。这个问题很复杂,因为我正在使用spring的HandlerInterceptorAdapter,我无法访问输入参数和那里的输出 我的拦截代码如下: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSer

我有一个通过http公开的RESTFul服务。它需要POST请求的Json输入。请指导我如何从
HttpServletRequest
HttpServletResponse
对象中提取Json输入。这个问题很复杂,因为我正在使用spring的
HandlerInterceptorAdapter
,我无法访问输入参数和那里的输出

我的拦截代码如下:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class MyInterceptor extends HandlerInterceptorAdapter {

  static final Logger logger = LoggerFactory.getLogger(RequestResponseInterceptor.class);

  //before the actual handler will be executed
  public boolean preHandle(HttpServletRequest request,
                           HttpServletResponse response, Object handler)
      throws Exception {

    logRequestPayload(request);

    return true;
  }

  private void logRequestPayload(HttpServletRequest request) {
    JSONObject requestObj = new JSONObject(request.getParameterMap());
    logger.debug("request:" + requestObj);
  }

  //after the handler is executed
  public void postHandle(
      HttpServletRequest request, HttpServletResponse response,
      Object handler, ModelAndView modelAndView)
      throws Exception {

    logResponsePayload(response);

  }

  private void logResponsePayload(HttpServletResponse response) {
    JSONObject responseObj = extractJsonFromResponse(response);
    logger.debug("response:" + response);
  }

  private JSONObject extractJsonFromResponse(HttpServletResponse response) {
    return new JSONObject();
  }
}

谢谢

您可能想使用HandlerMethodArgumentResolver,这里有一个很好的例子@