到目前为止,我的研究表明,javax.servlet.http.HttpServletRequest是调用常规Java Servlet的接口,而org.apache.http.HttpRequest通常用于实现RESTful服务。我在组织中的一个内部可用框架中看到了相同的示例,其中org.apache.http.HttpRequest是编程RESTful服务的接口。
我仍然觉得Apache已经提供了org.apache.http.HttpRequest来促进RESTful实现,因为这个接口没有任何状态代码,并且可以将实体作为响应使用。
两个接口之间究竟有什么区别?何时应该使用另一个接口?
答案 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然后将其发送回客户端。