You can extend RequestProcessor using a intercepting filter pattern for preprocessing (http://java.sun.com/blueprints/patterns/InterceptingFilter.html), so you don't have to check the session in every jsp.
public class MyRequestProcessor extends RequestProcessor { PreProcessingFilter firstPreProcessingFilter; public MyRequestProcessor() { firstPreProcessingFilter = new SessionPreProcessingFilter( new AuthenticationPreProcessingFilter(null)); } protected ActionForward processActionPerform( HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping) throws IOException, ServletException { ActionForward actionForward = firstPreProcessingFilter.process( request, response, action, form, mapping); if (actionForward == null) { return super.processActionPerform(request, response, action, form, mapping); } else { return actionForward; } } } /** * A base clase for all preprocessing filters. Usually, concrete filters only * need to provide an implementation of <code>doProcess</code>. */ public abstract class PreProcessingFilter { private PreProcessingFilter nextFilter; public PreProcessingFilter(PreProcessingFilter nextFilter) { this.nextFilter = nextFilter; } /** * Calls upon <code>doProcess</code>, and if necessary, continues to call * <code>process</code> on the next filter. */ public ActionForward process(HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping) throws IOException, ServletException { ActionForward actionForward = null; /* Process this filter. */ actionForward = doProcess(request, response, action, form, mapping); /* Process next filter in the chain. */ if ((actionForward == null) && (nextFilter != null)) { return nextFilter.process(request, response, action, form, mapping); } else { return actionForward; } } /** * Does the processing of this filter. * * @return <code>null</code> if the next filter must be processed; an * <code>ActionForward</code> otherwise */ protected abstract ActionForward doProcess(HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping) throws IOException, ServletException, InternalErrorException; } > -----Mensaje original----- > De: koen boutsen [mailto:[EMAIL PROTECTED] > Enviado el: viernes, 10 de octubre de 2003 13:32 > Para: Struts Users Mailing List > Asunto: redirect problem > > > Hi > If my httpsession is invalid, I want to send the user to the > logon page. I tried it in different ways, but get an error > everytime I tried it like this : (sessionIsValid is a > attribute in the session. If this attribute is null, it means > that my session does no longer exist). > > > <logic:notPresent name="sessionIsValid" scope="session"> > <logic:forward name="/sessionTimedOut"/> </logic:notPresent> > > > This is the error I get : > javax.servlet.jsp.JspException: Exception redirecting for > name /sessionTimedOut: java.lang.IllegalStateException > [10/10/03 13:08:25:033 CEST] 5355efea SystemErr R > at > org.apache.struts.taglib.logic.ForwardTag.doEndTag(ForwardTag. > java:164) > [10/10/03 13:08:25:033 CEST] 5355efea SystemErr R > at org.apache.jsp._specialCode1._jspService(_specialCode1.java:164) > [10/10/03 13:08:25:033 CEST] 5355efea SystemErr R > at > com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJs > pBase.java:89) > [10/10/03 13:08:25:033 CEST] 5355efea SystemErr R > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > [10/10/03 13:08:25:043 CEST] 5355efea SystemErr R > at > com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapp > er.service(JspServlet.java:344) > [10/10/03 13:08:25:043 CEST] 5355efea SystemErr R > at > com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile( > JspServlet.java:598) > [10/10/03 13:08:25:043 CEST] 5355efea SystemErr R > > Thanks for any help. > > Koen > > > ____________________________________________________________ > Get advanced SPAM filtering on Webmail or POP Mail ... Get > Lycos Mail! http://login.mail.lycos.com/r/referral?aid=27005 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]