Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/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
Rest org.apache.http.HttpRequest和javax.servlet.http.HttpServletRequest之间有什么区别?_Rest_Servlets_Frameworks_Httprequest - Fatal编程技术网

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

Rest org.apache.http.HttpRequest和javax.servlet.http.HttpServletRequest之间有什么区别?,rest,servlets,frameworks,httprequest,Rest,Servlets,Frameworks,Httprequest,到目前为止,我的研究表明javax.servlet.http.HttpServletRequest是调用常规Java servlet的接口,而org.apache.http.HttpRequest通常用于实现RESTful服务。我在组织中的一个内部可用框架中看到了一个例子,其中org.apache.http.HttpRequest是编程RESTful服务的接口 我仍然觉得org.apache.http.HttpRequest已经由apache提供,以促进RESTful实现,因为这个接口没有任何状

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

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


两个接口之间的区别以及何时应该使用一个接口而不是另一个接口?

HttpServletRequest是一个服务器端类,是JavaEEServletAPI的一部分。您在实现时使用它。。。一个servlet

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

(在非Java上下文中也有
HttpRequest
类…)


这两个接口之间到底有什么区别?什么时候应该使用一个接口而不是另一个

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

  • 在实现servlet时使用
    HttpServletRequest

  • 在实现servlet时不要使用
    HttpRequest

“宁静”是正交的;i、 您可以使用servlet实现RESTful服务器,而不使用servlet实现非RESTful服务器


我仍然不清楚两者之间的基本区别。如果
HttpServletRequest
已经存在,为什么有人首先需要
HttpRequest

因为有些人的应用程序可能没有使用标准的JavaEEServlet框架。如果没有,那么它就不是“已经存在”

从这个角度来看,
HttpRequest
HttpServletRequest
之间的基本区别在于它们是不同框架的一部分,您可以使用其中一个框架,具体取决于您使用的框架


为什么我们有两个班?因为历史。JavaEEServlets最先出现,并且在许多年前被标准化并被广泛使用。后来实现了ApacheHTTP组件库,以解决servlet没有解决的用例;e、 g.小服务员太重的地方

  • Oracle无法将Java EE更改为将
    HttpServletRequest
    替换为Apache
    HttpRequest
    类,因为它会破坏太多的客户代码
  • Apache不能在HTTP组件中采用
    HttpServletRequest
    ,因为它的“包袱”不适合非servlet用例
不管怎样,这都是事实



您选择哪种框架?你怎么选择?这些问题对于StackOverflow来说都是离题的。(推荐、主观、过于宽泛等)

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

您需要提供完整的包名。由于有javax.servlet.http.HttpServletRequest,我看不到在常见的包HttpRequest中有任何地方,或者您指的是javax.servlet.ServletRequest,或者来自不太流行的第三方库的东西。基本上,HttpServlet和GenericServlet(“定义一个通用的、协议独立的servlet”)之间的区别是相同的。您可以阅读javadoc了解更多差异。