繁体   English   中英

使用Restlet进行过滤的正确方法

[英]The right way to do Filtering with Restlet

这是我需要修复的过滤器代码。 过滤器的想法是,如果找到一些查询字符串。 处理它,不需要返回或处理链或类似的东西。 但是,如果找不到查询字符串,则应处理原始请求,例如,获取/放置/更新/删除请求。

    @Override
    protected int doHandle(Request request, Response response) {
        HttpServletRequest servletRequest = ServletUtils.getRequest(request);
        HttpServletResponse servletResponse = ServletUtils.getResponse(response);
        String query = servletRequest.getQueryString();
        LOG.info("Query=" + query);
        if(query != null && query.contains(ESCAPED_FRAGMENT_FORMAT1)){
            // TODO: return a HTML String, no need to go down the chain.
            return STOP;
        } else {
            // TODO: need to execute the original request
            return SKIP;
        }
        return CONTINUE;
    }

这里的问题是,我不确定在此代码中何处返回STOP,SKIP和CONTINUE来达到我的需要。

  • CONTINUE:指示请求处理应正常继续。
  • STOP:指示请求处理应停止并从过滤器返回当前响应。
  • 跳过:指示在beforeHandle(Request,Response)方法之后,请求处理应跳过doHandle(Request,Response)方法,以继续afterHandle(Request,Response)方法。 doHandle方法通过将调用分配给下一个Restlet来处理该调用。

您可以在javadocs中找到所需的说明: http : //restlet.com/technical-resources/restlet-framework/javadocs/2.3/jse/api/org/restlet/routing/Filter.html

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM