Skip to content

Commit f834b27

Browse files
committed
better filter doc
1 parent 3da3bae commit f834b27

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

http/index.html

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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">&quot;before request&quot;</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">&quot;after request&quot;</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">&quot;before request&quot;</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">&quot;after request&quot;</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">&quot;before request&quot;</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

Comments
 (0)