org.springframework.http.httpRequest与httpServletRequest有什么区别?

Java与spring boot初学者,最近想做resttemplate的拦截器,发现拦截器里的方法

ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)

参数是httpRequest,项目实战中处理请求信息一般用javax.servlet.http.httpservletRequest
两者的方法也不一样,HttpServlet对象只能按header名进行索引,HttpRequest的getheaders返回完整的HttpHeader对象,并且方法上明确了返回值不为空。

/**
 * Return the headers of this message.
 * @return a corresponding HttpHeaders object (never {@code null})
 */
HttpHeaders getHeaders();

这点也比较困惑,假如通过HttpEntity request = new HttpEntity<>(body, headers);构建header为null的request,httpRequest会获取什么呢?

想问一下这两者有什么联系跟区别?已经谷歌过了没找到合适的答案,谢谢各位

阅读 4.7k
1 个回答

处理请求用HttpServletRequest是因为用了Servlet
反过来用RestTemplate只能用HttpRequest是因为RestTemplate是spring自己做的抽象,当然只能用自己的东西

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题