Pan*_*edi 2 rest frameworks servlets httprequest
到目前为止,我的研究表明 javax.servlet.http.HttpServletRequest 是调用常规 Java Servlet 的接口,而 org.apache.http.HttpRequest 通常用于实现 RESTful 服务。我在我的组织中的一个内部可用框架中看到了一个相同的示例,其中 org.apache.http.HttpRequest 是对 RESTful 服务进行编程的接口。
我仍然觉得 org.apache.http.HttpRequest 已经被 Apache 提供来促进 RESTful 实现,因为这个接口没有任何状态代码并且使用传递实体作为响应。
这两个接口之间到底有什么区别,什么时候应该使用另一个接口?
HttpServletRequest 是一个服务器端类,它是 Java EE Servlet API 的一部分。您在实现... servlet 时使用它。
在 Java 上下文中,HttpRequest 可以(理论上)是任何东西……因为它不是 Java SE 或 EE 类。但通常它是 Apache Http Components 库中的一个类。这通常用于客户端代码,但也可以在服务器端使用它。
(HttpRequest在非 Java 上下文中也有类......)
这两个接口之间到底有什么区别,什么时候应该使用另一个接口?
它们是不相关的接口。(或“完全”无关......如果你愿意:-))
HttpServletRequest在您实现 servlet 时使用。
HttpRequest在实现 servlet 时不要使用。
“RESTful”是正交的;即您可以使用 servlet 实现 RESTful 服务器,而无需使用 servlet 即可实现非 RESTful 服务器。
我仍然不清楚两者之间的基本区别。为什么有人需要一个
HttpRequest摆在首位,如果HttpServletRequest是已经在那里?
因为某人的应用程序可能没有使用标准的 Java EE servlet 框架。如果它们不是,那么它就不是“已经存在”。
从这个角度来看,HttpRequest和之间的基本区别在于HttpServletRequest它们是不同框架的一部分,您使用一个或另一个取决于您使用的框架。
为什么我们有两个班级?因为历史。Java EE servlet 最早出现,并在多年前标准化并被广泛使用。Apache HTTP Components 库是后来实现的,以解决 servlet 没有解决的用例;例如,servlet 太重的地方。
HttpServletRequest为 ApacheHttpRequest类,因为它会破坏太多客户代码。HttpServletRequest在 HTTP 组件中采用,因为它具有不适合非 servlet 用例的“行李”。无论哪种方式,它就是它。
你选择哪个框架?你如何选择?这些问题都是 StackOverflow 的题外话。(建议、主观、过于宽泛等)
| 归档时间: |
|
| 查看次数: |
8554 次 |
| 最近记录: |