使用 Acegi 保护 Java 应用程序,第 4 部分: 保护 JSF 应用程序
2010-03-18 00:00:00 来源:WEB开发网详细来讲,图 1 显示的事件顺序如下所示:
servlet 容器实例化在 web.xml 文件中配置的所有侦听器。
servlet 容器将 Acegi 的 ContextLoaderListener 注册为一个侦听器类,该类实现 javax.servlet.ServletContextListener接口。ServletContextListener 接口包含两个重要方法:contextInitialized() 和 contextDestroyed():
contextInitialized() 方法在初始化 servlet 上下文时获得控制权。
类似地,当应用程序退出时,contextDestroyed() 方法会被调用,并消除 servlet 上下文。
servlet 容器将 JSF 的 ConfigureListener 注册为另一个侦听器。JSF 的 ConfigureListener 实现许多侦听器接口,比如 ServletContextListener、 ServletContextAttributeListener、 ServletRequestListener,以及 ServletRequestAttributeListener。您已经看到了 ServletContextListener 接口的方法。余下的接口是:
ServletContextAttributeListener,它包含 3 种方法:attributeAdded()attributeRemoved() 和 attributeReplaced()。这 3 种方法分别在某个属性被添加到 servlet 上下文、被从 servlet 上下文删除、被新属性取代时获得控制权。attributeReplaced() 方法在 处理对受 Acegi 保护的 JSF 页面的请求 小节的第 8 步中获得控制权。
ServletRequestListener 中包含的方法在创建或删除新的 servlet 请求对象时获得控制权。servlet 请求方法表示并包装来自用户的请求。
ServletRequestAttributeListener 中包含的方法在添加、删除或替换某个请求对象的属性时获得控制权。本文稍后将讨论在 处理对受 Acegi 保护的 JSF 页面的请求 小节的第 3 步中创建一个新的请求对象时,JSF 的 ConfigureListener 执行的处理。
更多精彩
赞助商链接