基本上我想问如果我们有ServletRequest,HttpServletRequest 有什么用?如果它用于 http 协议那么我们的 servlet 如何知道该请求是 httprequest
和ServletRequest都是HttpServletRequest接口。
ServletRequest代表请求的最通用概念。它对 HTTP 一无所知,因为它被设计为独立于协议。HttpServletRequest扩展它来表示使用特定协议(在本例中为 HTTP)进行通信的请求。
进行这些分离是设计选择,这样我们就可以通过简单地定义和实现扩展的新请求类型来增强 Servlet 容器与其他协议的协作ServletRequest。由于继承性,我们可以重用现有的ServletRequest代码和现有的 Servlet 基础设施来处理这个新协议。
例如,假设您发明了一个Sandeep Protocol优于 HTTP 的协议 ( ),您可以通过定义和实现SandeepServletRequest扩展来使 servlet 容器支持它ServletRequest
我们的 servlet 如何知道该请求是 httprequest?
这取决于协议是如何设计的。例如,对于 HTTP ,HTTP 规范定义的请求应如下所示:
因此容器可以检查接收字节的第一行是否包含HTTP方法和单词“HTTP”。如果是,则将其视为 HTTP 请求并创建一个HttpServletRequest实例。
| 归档时间: |
|
| 查看次数: |
2787 次 |
| 最近记录: |