我知道过滤器来处理请求,并可以做HTTP头和httpmethods的事情,但我有Clientrequestfilter VS Containerrequestfilter
是什么clientrequestfilter和containerrequestfilter之间的区别感到困惑? 在这种情况下,我们必须使用clientrequestfilter和containerrequestfilter?
我试着用this website但不是关于这个的任何细节。
请帮我理解这一点。
我知道过滤器来处理请求,并可以做HTTP头和httpmethods的事情,但我有Clientrequestfilter VS Containerrequestfilter
是什么clientrequestfilter和containerrequestfilter之间的区别感到困惑? 在这种情况下,我们必须使用clientrequestfilter和containerrequestfilter?
我试着用this website但不是关于这个的任何细节。
请帮我理解这一点。
REST交互有两个方面:客户端和服务器。 Jersey/JAX-RS-2具有客户端API和“主”服务器端API。在使用客户端API时,我们可以使用ClientRequestFilter
,并且在使用服务器端API时,我们将使用ContainerRequestFilter
。没有可能混合和匹配这些内容,它们应该严格用于交互的适当方面。
甲ContainerRequestFilter
(服务器端)的例子是做一些授权/验证,一个很常见的使用情况服务器侧滤波器。该过滤器会达成任何你的资源
Client ---> Internet ---> Server ---> Filter ---> Resource
一个ClientRequestFilter
(客户端)例如将是实现一些客户端缓存(有点嘲讽的浏览器缓存)之前被调用。或者一个案例(已经实施)是一个过滤器,用于编码BASIC认证的用户名和密码。在请求实际发送到服务器之前,客户端过滤器将被调用。
Client ---> Filter ---> Internet ---> Server ---> Resource
也有XxxResponseFilters
遵循以下流程
Resource ---> ContainerResponseFilter ---> Server ---> Internet ---> Client
Server ---> Internet ---> ClientResponseFilter ---> Client
由于这是真的很有帮助。 – sunleo