我正在构建一个Web应用程序,用户必须通过sessioncoped的managedbean进行登录。 (使用java ee6),什么是拦截器,它们如何帮助我完成我的程序。我一直在阅读它们,但我读到的材料似乎有些荒谬的解释。没有人把它放在我的问题中。谢谢预先
答案 0 :(得分:0)
我不熟悉Java EE 6中的拦截器,但我知道来自Struts 2框架的拦截器,它实际上看起来是相同的。
关键是横向任务不应该在你的课程中(记录,识别,安全......)..因此决定将它放在拦截器内。
当请求到达时,在到达(以及离开)您的行动之前,我会说,它被其他一些可以验证,更改或做任何您认为合适的课程的人拦截。
这是一种很好的编程方式,因此POO更受尊重。您的业务类不再受到不应存在的代码段的污染,应该可以从所有应用程序访问代码段
答案 1 :(得分:0)
IMO,我认为拦截器在这种情况下不会对你有太多帮助,因为它用于包装EJB方法,并且可能只有在用户已经登录系统时才能使用大多数这些方法。如果授权用户请求的话,检查每个EJB方法听起来都是不必要的开销。当您尝试限制应用程序使用时,过滤器通常是您真正想要的,因为它适用于请求级别,您可以检查用户是否已登录,如果有一些Session对象。
拦截器对于分析和审计等水平功能肯定很有用。
答案 2 :(得分:0)
好吧,拦截器是能够在方法调用或EJB的生命周期事件(会话和消息驱动的bean)上插入自己的对象。
常见用法:
拦截器是EJB的最好朋友:
所以,这是拦截器。为了您的目的(登录页面),莱昂纳多说过滤器会更好,但请将拦截器放在工具箱中。