org.apache.http.HttpRequest和javax.servlet.http.HttpServletRequest有什么区别?

时间:2014-10-04 07:21:47

标签: rest servlets frameworks httprequest

到目前为止,我的研究表明,javax.servlet.http.HttpServletRequest是调用常规Java Servlet的接口,而org.apache.http.HttpRequest通常用于实现RESTful服务。我在组织中的一个内部可用框架中看到了相同的示例,其中org.apache.http.HttpRequest是编程RESTful服务的接口。

我仍然觉得Apache已经提供了org.apache.http.HttpRequest来促进RESTful实现,因为这个接口没有任何状态代码,并且可以将实体作为响应使用。

两个接口之间究竟有什么区别?何时应该使用另一个接口?

2 个答案:

答案 0 :(得分:4)

HttpServletRequest是服务器端类,是Java EE Servlet API的一部分。在实现...一个servlet时使用它。

在Java上下文中,HttpRequest可以(理论上)是任何东西......因为它不是Java SE或EE类。但通常它是Apache Http Components库中的一个类。这通常用于客户端代码,但也可以在服务器端使用它。

(非Java上下文中也有HttpRequest个类......)


  

两个接口之间究竟有什么区别?何时应该使用另一个接口?

  • 它们是不相关的接口。 (或“完全”无关......如果你愿意:-))

  • 在实施servlet时使用HttpServletRequest

  • 在实施servlet时不要使用HttpRequest

“RESTful”是正交的;即,您可以使用servlet实现RESTful服务器,而不使用servlet来实现非RESTful服务器。

答案 1 :(得分:0)

我认为Httpservletrequest是容器和servlet之间通信的一部分,因为容器为它创建对象并将其传递给servlet,而Httprequest是容器和客户端之间通信的一部分,因为容器将Httpservlet respone转换为Httpresponse然后将其发送回客户端。