@@ -1368,15 +1368,20 @@ <h2 id="default">@Default</h3>
13681368</ div >
13691369< h2 id ="filter "> @Filter</ h2 > < hr />
13701370< p >
1371- Annotate methods with < code > @Filter</ code > for HTTP filter web routes. Filter web routes behave similarly to void < code > @Get </ code > methods (They can use header/query/cookie parameters with type conversion)
1371+ Annotate methods with < code > @Filter</ code > for HTTP filter web routes. Filters allow you to intercept a request before it hits a handler endpoint.
13721372</ p >
13731373< h4 > Jex</ h4 >
13741374< p >
13751375 Jex filters must have a < code > FilterChain</ code > parameter, and optionally can add < code > Context</ code > .
13761376</ p >
13771377< div class ="syntax java "> < div class ="highlight "> < pre > < span > </ span > < span class ="nd "> @Filter</ span >
13781378< span class ="kt "> void</ span > < span class ="nf "> filter</ span > < span class ="o "> (</ span > < span class ="n "> FilterChain</ span > < span class ="n "> chain</ span > < span class ="o "> ,</ span > < span class ="n "> Context</ span > < span class ="n "> ctx</ span > < span class ="o "> )</ span > < span class ="o "> {</ span >
1379- < span class ="c1 "> //... filter logic</ span >
1379+ < span class ="n "> System</ span > < span class ="o "> .</ span > < span class ="na field "> out</ span > < span class ="o "> .</ span > < span class ="na "> println</ span > < span class ="o "> (</ span > < span class ="s "> "before request"</ span > < span class ="o "> );</ span >
1380+ < span class ="c1 "> // proceed to the next filter in the chain, or the endpoint handler if at the end of</ span >
1381+ < span class ="c1 "> // the chain</ span >
1382+ < span class ="n "> chain</ span > < span class ="o "> .</ span > < span class ="na "> proceed</ span > < span class ="o "> ();</ span >
1383+ < span class ="c1 "> // do something after the request executes</ span >
1384+ < span class ="n "> System</ span > < span class ="o "> .</ span > < span class ="na field "> out</ span > < span class ="o "> .</ span > < span class ="na "> println</ span > < span class ="o "> (</ span > < span class ="s "> "after request"</ span > < span class ="o "> );</ span >
13801385< span class ="o "> }</ span >
13811386</ pre > </ div >
13821387</ div >
@@ -1386,18 +1391,24 @@ <h4>Helidon</h4>
13861391</ p >
13871392< div class ="syntax java "> < div class ="highlight "> < pre > < span > </ span > < span class ="nd "> @Filter</ span >
13881393< span class ="kt "> void</ span > < span class ="nf "> filter</ span > < span class ="o "> (</ span > < span class ="n "> FilterChain</ span > < span class ="n "> chain</ span > < span class ="o "> ,</ span > < span class ="n "> RoutingRequest</ span > < span class ="n "> req</ span > < span class ="o "> ,</ span > < span class ="n "> RoutingResponse</ span > < span class ="n "> res</ span > < span class ="o "> )</ span > < span class ="o "> {</ span >
1389- < span class ="c1 "> //... filter logic</ span >
1394+ < span class ="n "> System</ span > < span class ="o "> .</ span > < span class ="na field "> out</ span > < span class ="o "> .</ span > < span class ="na "> println</ span > < span class ="o "> (</ span > < span class ="s "> "before request"</ span > < span class ="o "> );</ span >
1395+ < span class ="c1 "> // proceed to the next filter in the chain, or the endpoint handler if at the end of</ span >
1396+ < span class ="c1 "> // the chain</ span >
1397+ < span class ="n "> chain</ span > < span class ="o "> .</ span > < span class ="na "> proceed</ span > < span class ="o "> ();</ span >
1398+ < span class ="c1 "> // do something after the request executes</ span >
1399+ < span class ="n "> System</ span > < span class ="o "> .</ span > < span class ="na field "> out</ span > < span class ="o "> .</ span > < span class ="na "> println</ span > < span class ="o "> (</ span > < span class ="s "> "after request"</ span > < span class ="o "> );</ span >
13901400< span class ="o "> }</ span >
13911401</ pre > </ div >
13921402</ div >
13931403
13941404< h4 > Javalin</ h4 >
13951405< p >
1396- Javalin filters correspond to < code > before</ code > handlers, and can have a < code > Context</ code > parameter.
1406+ < code > @Filter </ code > correspond to Javalin < code > before</ code > handlers, and can have a < code > Context</ code > parameter.
13971407</ p >
13981408< div class ="syntax java "> < div class ="highlight "> < pre > < span > </ span > < span class ="nd "> @Filter</ span >
13991409< span class ="kt "> void</ span > < span class ="nf "> filter</ span > < span class ="o "> (</ span > < span class ="n "> Context</ span > < span class ="n "> ctx</ span > < span class ="o "> )</ span > < span class ="o "> {</ span >
1400- < span class ="c1 "> //... filter logic</ span >
1410+ < span class ="n "> System</ span > < span class ="o "> .</ span > < span class ="na field "> out</ span > < span class ="o "> .</ span > < span class ="na "> println</ span > < span class ="o "> (</ span > < span class ="s "> "before request"</ span > < span class ="o "> );</ span >
1411+ < span class ="c1 "> //calling ctx.skipRemainingHandlers() allows you to avoid further processing</ span >
14011412< span class ="o "> }</ span >
14021413</ pre > </ div >
14031414</ div >
0 commit comments