代码之家  ›  专栏  ›  技术社区  ›  Abdullah Jibaly

拦截对Tomcat6中httpsession的调用

  •  3
  • Abdullah Jibaly  · 技术社区  · 14 年前

    截取session.getattribute()和session.setattribute()的建议方法是什么?这是一个基于Spring的应用程序,所以基于AOP的应用程序会非常好。如果可能的话,我希望避免重写核心Tomcat类。

    更新: 我想在Web服务中存储实际的序列化属性。

    2 回复  |  直到 14 年前
        1
  •  5
  •   700 Software    14 年前

    我不熟悉AOP或Spring(或Tomcat)。但是我很喜欢爪哇。

    我的方法是设置一个过滤器,并用自己的对象替换请求变量。

    request = new MyRequest(request);
    

    然后重写getsession()和getsession(布尔值)以返回mysession的实例

    JavaX.Servel.HutpServices请求和JavaX.Servel.HtpScript类是JavaEE标准而不是Tomcat特定的。

        2
  •  5
  •   matt b    14 年前

    你可以实现你自己的会话 org.apache.catalina.Manager swap it into Tomcat's configuration 尽管界面看起来相当冗长,所以可能首先考虑扩展ManagerBase或StandardManager。

    作为替代方案,注册A HttpSessionAttributeListener 在添加/删除/更新会话属性时得到通知。这不会改变默认的存储机制——会话数据也会保存在内存中——但它也会让您使用另一种机制来保存数据。