%@page session="false"%>
Use cases: 1. Simple dispatch - servlet does startAsync() - background thread calls ctx.dispatch() "> Async 0 2. Simple dispatch - servlet does startAsync() - background thread calls dispatch(/path/to/jsp) "> Async 1 3. Simple dispatch - servlet does startAsync() - background thread calls writes and calls complete() "> Async 2 4. Simple dispatch - servlet does a startAsync() - servlet calls dispatch(/path/to/jsp) - servlet calls complete() "> Async 3 3. Timeout s1 - servlet does a startAsync() - servlet does a setAsyncTimeout - returns - waits for timeout to happen should return error page 4. Timeout s2 - servlet does a startAsync() - servlet does a setAsyncTimeout - servlet does a addAsyncListener - returns - waits for timeout to happen and listener invoked 5. Dispatch to asyncSupported=false servlet - servlet1 does a startAsync() - servlet1 dispatches to dispatch(/servlet2) - the container calls complete() after servlet2 is complete - TODO 6. Chained dispatch - servlet1 does a startAsync - servlet1 does a dispatch to servlet2 (asyncsupported=true) - servlet2 does a dispatch to servlet3 (asyncsupported=true) - servlet3 does a dispatch to servlet4 (asyncsupported=false) 7. Stock ticker "> StockTicker