gpt4 book ai didi

jakarta-ee - servletRequest是接口(interface)还是类?ServletRequest和HttpServletRequest有什么区别?

转载 作者:行者123 更新时间:2023-12-02 00:13:53 24 4
gpt4 key购买 nike

基本上我想问一下,如果我们有 ServletRequest,HttpServletRequest 有什么用?如果它用于 http 协议(protocol)那么我们的 servlet 如何知道请求是 httprequest

最佳答案

ServletRequestHttpServletRequest也是接口(interface)。

ServletRequest 表示请求的最通用概念。它对 HTTP 一无所知,因为它被设计为独立于协议(protocol)的。 HttpServletRequest 将其扩展为表示使用特定协议(protocol)(在本例中为 HTTP)进行通信的请求。

这些分离是设计选择,这样我们就可以通过简单地定义和实现扩展 ServletRequest 的新请求类型来增强 Servlet 容器可以与其他协议(protocol)一起工作。由于继承,我们可以重用现有的 ServletRequest 代码和现有的 Servlet 基础设施来处理这个新协议(protocol)。

例如,假设你发明了一个优于 HTTP 的协议(protocol)(Sandeep Protocol),你可以通过定义和实现 SandeepServletRequest 让 servlet 容器支持它扩展 ServletRequest

how would our servlet know that the request is httprequest?

这取决于协议(protocol)是如何设计的。例如,在 HTTP 的情况下,HTTP 规范定义请求应该如下所示:

enter image description here

因此容器可能会检查接收字节的第一行是否包含 HTTP 方法和单词“HTTP”。如果是,它将把它视为 HTTP 请求并创建一个 HttpServletRequest 实例。

关于jakarta-ee - servletRequest是接口(interface)还是类?ServletRequest和HttpServletRequest有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57644369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com