Sono in questa situazione:
ho un'applicazione web con varie pagine JSP; ognuna include un'header.jsp che vorrei facesse un controllo sul login.
In questo modo se un utente non loggato volesse accedere a direttamente a una pagina verrebbe ributtato alla index dove potrebbe loggarsi. Stessa cosa nel caso espirasse la sessione.

Quindi ho ad esempio una pagina search.jsp che inizia con:

Codice PHP:
<%@ page import="java.util.* java.text.DateFormat;" %>

<
jsp:include page="header.jsp" /> 
Viene inclusa header.jsp che fa il controllo:

Codice PHP:
<%
session request.getSession();
String username = ((String)session.getAttribute("username"));
if (
username == null) {
    %>
    <
jsp:forward page="index.jsp?expiredSession=yes"/>
    <%
}
else {
[...] 
Si viene correttamente forwardati a index.jsp e il seguito (l'else) di header.jsp non viene mostrato MA viene invece mostrato il seguito di search.jsp, quello che viene dopo l'include dell'header.

Facendo un controllo direttamente in search.jsp il problema non si presenta, ma vorrei evitarlo perchè dovrei inserire tale controllo in tutte le pagine, mentre preferirei centralizzarlo nell'header, che è poi incluso ovunque.

C'è un modo?
Grazie in anticipo.