DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Required Capabilities in Self-Navigating Vehicle-Processing Architectures
  • From Open SQL to CDS Views: Rewriting SAP Data Access for Performance at Scale
  • Cutting Data Pipeline Costs and Data Freshness Issues With Netflix Maestro and Apache Iceberg: A Practical Tutorial
  • From ETL to Lakeflow: Shifting to a Declarative Data Paradigm

Trending

  • Stop Loading Everything into Redshift: A Spectrum + Iceberg Pattern for Hybrid Analytics
  • Context Rot: Why Your AI Agent Gets Worse the Longer It Works
  • The Hidden Cost of AI-Generated Frontend Code
  • Reducing RAG Hallucinations With Relationship-Aware Retrieval
  1. DZone
  2. Data Engineering
  3. Data
  4. Sharing Data Between JAX-RS Filters

Sharing Data Between JAX-RS Filters

A straight and to the point post on JAX-RS filters. Great for anyone using the popular standard for their REST services.

By 
Abhishek Gupta user avatar
Abhishek Gupta
DZone Core CORE ·
Mar. 24, 16 · Analysis
Likes (3)
Comment
Save
Tweet
Share
6.2K Views

Join the DZone community and get the full member experience.

Join For Free

This is a quick post which points out how to share contextual user-defined (custom) data between JAX-RS filters

Filter Execution

  • It is chain based: one filter gets executed after another
  • Request filters are executed before Response filters
  • If a filter throws an exception, the chain breaks and other filters are skipped i.e. an exception from a Request filter will auto-abort all other Request filters. The same is applicable to Response filters

For more info, please do check out one of my existing blog posts which discussed JAX-RS server side processing pipeline in depth

Sharing Data b/w Filters

JAX-RS API enables sharing of user-defined data amongst filters associated with a particular request

  • It is abstracted in the form of a Map<String,Object> (pretty natural choice) via the ContainerRequestContext interface
  • Get all the custom properties using the getPropertyNames() method
  • The value of a specific property can be fetched (from the Map) using getProperty(String name)
  • Overwrite an existing property or add a new one using setProperty(String name, Object val)

Examples

Here is how multiple Request filters can share user-defined contextual data amongst themselves

Another example where a Response filter uses the contextual dataset by a Request filter

To Be Noted…

The same capability is available in the Client side JAX-RS filters as well. The only difference is that you would be interacting with an instance of the ClientRequestContext

Further Reading

Cheers !

This entry was posted in Java EE and tagged filters, javaee7, JAX-RS 2.0, REST. Bookmark the permalink.
Data (computing) Filter (software)

Published at DZone with permission of Abhishek Gupta. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Required Capabilities in Self-Navigating Vehicle-Processing Architectures
  • From Open SQL to CDS Views: Rewriting SAP Data Access for Performance at Scale
  • Cutting Data Pipeline Costs and Data Freshness Issues With Netflix Maestro and Apache Iceberg: A Practical Tutorial
  • From ETL to Lakeflow: Shifting to a Declarative Data Paradigm

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook