google-app-engine - 如何将过滤器关联到 Google App Engine 的 app.yaml 中的 servlet?

标签 google-app-engine servlets servlet-filters objectify app.yaml

对于我的应用程序引擎应用程序,我想将 servlet 分配给 url 模式,同时还设置了 Objectify 过滤器,如下所述:https://code.google.com/p/objectify-appengine/wiki/Setup .

在我的 app.yaml 中,我有

handlers:
  - url: /v1/*
    name: v1
    servlet: org.restlet.ext.servlet.ServerServlet
    ...etc...

它可以很好地将请求路由到我的 servlet,但我不知道如何安排 Objectify 过滤器在 servlet 正在处理的相同请求上运行。

GAE docs说“过滤器是一个像 servlet 一样作用于请求的类,但可能允许使用其他过滤器或 servlet 继续处理请求。”

好吧,好吧,这就是我想要的。但文档还说“单个 URL 映射可以包含过滤器或 servlet,但不能同时包含两者。”

那么...我该怎么做?

最佳答案

过滤器在 servlet 之前运行,并且它们不具有排他性。通常,对于一个请求,所有过滤器都会运行,然后会选择并执行给定 URL 的一个 servlet。

在 yaml 中创建一个新的过滤器部分:

handlers:
  - url: /v1/*
    name: v1
    servlet: org.restlet.ext.servlet.ServerServlet
  - url: /*    
    name: ObjectifyFilter
    filter: com.googlecode.objectify.ObjectifyFilter

注意:最好让 ObjectifyFilter 对所有请求运行(url:/*),以确保 objectify 始终初始化。

关于google-app-engine - 如何将过滤器关联到 Google App Engine 的 app.yaml 中的 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554450/

相关文章:

java - Servlets , JPA - 登录问题

java - 仅支持有限数量的语言

jsf-2 - 如何从过滤器内部获取SessionScoped CDI bean?

google-app-engine - 如何从 Hudson(或任何其他 CI)在 Google App Engine 上自动部署?

python - Google 应用引擎上的 Django : "Instance names cannot contain the ' :' character."

java - getServletContext().getRealPath ("") 在 WebLogic 中返回 null

java - 初始化 servlet 时如何传递引用

java - 为什么 session 超时后无法访问 servlet?

google-app-engine - 我的 Java App Engine 托管虚拟机构建在 2015 年 4 月 14 日更新后未部署

google-app-engine - 我想构建一个 Google 友好的网络应用程序,我应该从哪里开始?