java - 未调用 Servlet 过滤器

标签 java google-app-engine servlets

我有一个过滤器设置,可以为对特定 servlet(在我的例子中是帐户 servlet)的所有请求调用。这是在 Google App Engine 项目的上下文中。提交表单后,请求首先发送到 google,然后他们对我的 servlet 执行 POST,以便我可以检索上传的 blob。表单操作是:

blobstoreService.createUploadUrl("/account/submit-order")

我的过滤器映射是:

   <filter>
      <filter-name>Account Servlet Filter</filter-name>
      <filter-class>com.myapp.filters.AccountServletFilter</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>Account Servlet Filter</filter-name>
      <servlet-name>Account Servlet</servlet-name>
   </filter-mapping>

我的 servlet 映射是:

   <servlet>
      <servlet-name>Account Servlet</servlet-name>
      <servlet-class>com.myapp.servlets.AccountActionServlet</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>Account Servlet</servlet-name>
      <url-pattern>/account/*</url-pattern>
   </servlet-mapping>

当我对应用程序中的帐户 URL 执行 GET 请求时,过滤器会起作用,但出于某种原因,来自 google 的请求(作为 POST)不会触发过滤器。有什么想法吗?

我已经验证,如果我将表单发布到/account/foo(将其设置为表单的操作,使用方法 POST),将触发 servlet 过滤器,因此过滤器正在工作,但由于某种原因,当POST请求来自google,直接调用servlet,绕过过滤器。

最佳答案

可能的选择

还有另一个过滤器不会使用 chain.doFilter() 传递到链中的下一个过滤器.

[更新] 刚找到这个@BalusC post对于类似的东西 - 他还有一个选项 list 。一个符合这个,另外两个不适用。

关于java - 未调用 Servlet 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908206/

相关文章:

python - Google Cloud VM 在部署时创建新版本

python - 自更新 1.8.8 起,开发服务器上出现 Google Cloud Storage Client Library 400 错误

google-app-engine - appcfg.py create_bulkloader_config 返回 "Authentication Failed"甚至没有提示我进行身份验证

java - 当我直接运行帮助程序类时,代码抛出异常

javascript - 从 Gson 到 JavaScript

java - 如何在 Java 中计算事件的耗时?

Java NIO 问题/对 isReadable 工作方式的误解

java - JAXBContext 初始化加速?

java - 辩论俱乐部作业应用程序的设计

java与mysql连接问题