我正在将jetty嵌入到我的应用程序中,并试图找出如何添加servlet过滤器(用于cookie处理) . wiki和javadoc没有说清楚,我错过了什么:
Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
FilterHolder f = new FilterHolder(new AuthorisationFilter());
context.addFilter(... f ...); // ?????
context.addServlet(new ServletHolder(new TestServlet()), "/");
我发现的唯一信息是forum post suggesting the documentation,这需要改进 .
3 回答
更新:对于Jetty版本9.2.2:
原始答案===
如果您不想使用web.xml,请使用以下命令:
如果您确实想使用web.xml而不是addFilter()方法,请确保您的webapp根路径中包含以下xml的WEB-INF / web.xml:
我遇到了同样的问题,但我认为Καrτhικ的答案太复杂了 . 我找到了这个简单的方法:
我的码头版本是
8.1.14.v20131031
.ServletContextHandler.addFilter(...)
方法只是ServletHandler.addFilter(...)
方法的便利包装器 . 如果您只需要一个<url-pattern>
,那么它们非常方便 . 但是,如果您需要多个模式或选择使用<servlet-name>
,则需要更多类似的内容: