サーブレット内で、セッションタイムアウトしたときに
DBのテーブルを更新する処理を、
HttpSessionListener#sessionDestroyed()に書いています。

処理自体は、現在のセッションからServletContextを取得して、
DBを更新する処理を実装してあるサービス層にアクセスしています。

この際に、ServletContextの取得を都度セッション単位で取得するのではなく
アプリケーション全体でServletContextをstaticな1つ持っておいて、
HttpSessionListener#sessionDestroyed()からは
それを読むようにするのは間違いでしょうか?