Cómo saber cuándo se reenvía la solicitud en un objeto RequestWrapper

Estoy usando una subclase deHttpServletRequestWrapper para hacer algunas traducciones en los parámetros de solicitud, y guardo en caché los valores traducidos la primera vez que se solicitan. Por ejemplo, la primera vezgetQueryString() se llama, yo llamosuper.getQueryString() y calcular el resultado que quiero y mantenerlo en un campo, y luego devolverlo. La próxima vez, solo uso el resultado en caché.

Este método funciona de maravilla a menos que haya algún "reenvío". Cuando se reenvía una solicitud, Tomcat reemplaza la solicitud original, por lo que mi cadena de consulta en caché no cambia y la página reenviada obtiene la cadena de consulta original, no la que se reenvía.

Overriding thesetRequest()l método @ para borrar el caché tampoco ayuda, ya que si la solicitud se ajusta dos veces, llama alsetRequest en el envoltorio interno (que no es mío), y no tengo forma de saber cuándo sucede.

Estoy buscando una forma de recibir notificaciones cuando haya un cambio en la jerarquía de solicitudes envueltas, de modo que pueda borrar el caché, cuando haya un "reenvío".

Respuestas a la pregunta(1)

Su respuesta a la pregunta