javax.servlet.Filter用于特定的请求方法

时间:2014-05-14 18:59:52

标签: java http servlets filter

是否可以将过滤器应用于应用程序或所需映射中的每个POST(或HTTP操作的组合)?

示例web.xml:

<filter>
    <display-name>AccessFilter</display-name>
    <filter-name>AccessFilter</filter-name>
    <filter-class>foo.bar.AccessFilter</filter-class>
</filter>
    <filter-mapping>
    <filter-name>AccessFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我有一个映射以下URL的控制器:

  • [GET] / foo /
  • [GET] / foo /:id
  • [POST] / foo
  • [POST] / bar
  • [PUT] / bar /:id

例如。

我可以将此过滤器JUST应用于POST的URL吗?

动机:只让资源所有者修改它们,但让每个人都使用它们。

1 个答案:

答案 0 :(得分:1)

检查method中的请求Filter,如下所示,并执行您想做的事情。

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
        FilterChain filterChain) throws ServletException, IOException {
    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;

    String method = httpServletRequest.getMethod(); //post or get

}