Why does a forwarded request pass through filter chain again?
Asked Answered
L

1

4

I implemented not usual architecture for Grails app because I made front controller which only forwards requests further (based on some criteria). I also implemented locale resolver as a http servlet request filter. And it turned out that forwarded request passes again through filter chain. So flow looks like this:

  1. A request arrives to grails app
  2. The request passes through my filter
  3. The front controller gets the request and forwards it further
  4. The forwarded request passes again through my filter
  5. A back controller gets the request

In the mean time of writing this post I've come up how to omit the problem (my implementation specific). But still I'm curious why does it happen? Forward should work behind the scene. Java EE spec doesn't say anything about this behaviour (forward javadoc).

Lobe answered 13/7, 2011 at 10:41 Comment(0)
K
6

In the <filter-mapping> element there is the forward <dispatcher> option. It includes FORWARD. You'd have to list the options you want the filter to be applied to (request, error, include) and leave out forward.

Kenishakenison answered 13/7, 2011 at 10:45 Comment(1)
Thank you. I even didn't know about <dispatcher> option. Now everything is clear. Have a nice coding ;)Lobe

© 2022 - 2024 — McMap. All rights reserved.