路由前如何在 Play 1.2.x 中调用 servlet 过滤器
Posted
技术标签:
【中文标题】路由前如何在 Play 1.2.x 中调用 servlet 过滤器【英文标题】:How to invoke servlet filter in Play 1.2.x before routing 【发布时间】:2019-03-12 02:18:49 【问题描述】:总体:
我的问题是关于添加 Servlet Filter to Play 框架项目以在路由之前调用。
版本:
Java 7 播放 1.2.6更多信息:
我尝试使用 @Before 标记播放拦截器,它可以工作。我更喜欢在路由之前使用 servlet 过滤器。问题:
即使在路由之前或之后,也根本不会调用过滤器。能否请您与我分享您的真正解决方案,看看是否可以在 Play 框架中使用 Servlet 过滤器【问题讨论】:
【参考方案1】:AFAIK Play 1.x 中没有 servlet 拦截器 您可以使用 @Before 注释来解决您的一些问题。但是 @Before 并不是拦截器的完全合格替代品。
手动(有点低级别)的方法可以添加你的拦截器来播放管道。 Play 有一个配置play.netty.pipeline
,默认为:
#play.netty.pipeline = play.server.FlashPolicyHandler,org.jboss.netty.handler.codec.http.HttpRequestDecoder,play.server.StreamChunkAggregator,org.jboss.netty.handler.codec.http.HttpResponseEncoder,org.jboss.netty.handler.stream.ChunkedWriteHandler,play.server.PlayHandler
您可以修改管道并在列表中的最后一个元素 (play.server.PlayHandler
) 之前添加自定义处理程序。
【讨论】:
以上是关于路由前如何在 Play 1.2.x 中调用 servlet 过滤器的主要内容,如果未能解决你的问题,请参考以下文章
在 Play Framework 1.2.x 中,如何在路径表达式中使用渲染参数值?
如何将参数传递给 Play 中的 Jobs!框架 1.2.x?
Play Framework [2.4.x] 如何在子模块的路由文件中处理公共资产