当前位置: 首页 > 知识库问答 >
问题:

Servlet过滤器URL模式-如何匹配特定Servlet也派发请求的所有Servlet

栾英资
2023-03-14

编辑-过滤器用于缓存响应。我需要缓存AJAXHandler转发到的各个servlet的响应,而不是AJAXHandler本身最终返回的捆绑响应。

共有1个答案

孙帅
2023-03-14

一个足够简单的方法是在Servlet中设置一个请求属性,并在返回过滤器时检查它。

public class AjaxHandler extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
        req.setAttribute("cache", "true");
        ...
    }
}

筛选器

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    chain.doFilter(request, response)
    if (request.getAttribute("cache") != null) {
        // do your thing
    }

}

您的筛选器可以映射到所有/*

 类似资料:
  • 假设我已经定义了这些RESTendpoint: 我定义了两个过滤器(日志记录和授权),在这些过滤器中,我想获得与当前请求匹配的url模式。使用上述示例: 如果请求是一个GET到 /variables,我需要"/变量" 如果请求是一个GET到 /variables/myfancyname,我需要"/变量/{name}" 如果请求是一个PUT到 /variables/myfancyname/myval

  • 如果任何< code>J2EE应用程序直接命中servlet,然后servlet将相同的请求转发给某个< code >。jsp页面。 我有一个带有以下url模式的servlet过滤器 因此,转发的请求是否也会进行过滤。 在我的情况下,它不会到来,这是一个预期的行为。只是想了解这一点。

  • 问题内容: 我们遇到一种情况,我们想对包含某些特定请求参数的URL使用过滤器,例如: 等等,都是在运行时牵强,我想配置过滤器,只有当。应该如何解决?可以使用正则表达式模式配置Filter吗? 问题答案: 据我所知,尚无解决方案可直接在中通过查询字符串将请求匹配到过滤器。因此,您可以在使用init- params的情况下注册过滤器,以使过滤器可配置,并在实现中设置模式。 您的web.xml中的配置如

  • 我很难在spring Security的j_spring_security_check和j_spring_security_logout上删除这些404条消息。我认为SpringServlet URL模式、springSecurityFilterChain URL模式和/或SiteMesh之间可能存在一些冲突。 这是我的web.xml: 和我的ApplicationContext(包括spring

  • 还有,如果真的要给出另一个模式,“/restful/**”不是更好吗?因为“/**”将匹配与“/RESTFUL/**”不匹配的URL,因此不由此筛选器链处理。

  • 问题内容: 我正在尝试找到一种方法,可将请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向。我搜索了,但发现的是方法。我在过滤器的响应对象上找不到此方法。是什么原因 我该如何解决? 问题答案: 在Filter中,响应是而不是。因此将强制转换为。 如果使用上下文路径: 也不要忘记在最后打电话。