使用 Restlet 进行过滤的正确方法
The right way to do Filtering with Restlet
这是我需要修复的过滤器代码。过滤器背后的想法是,如果找到了一些查询字符串。处理它,不需要 return 或处理链或类似的东西。然而,当没有找到查询字符串时,应该为原始请求提供服务,例如get/put/update/delete请求。
@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;
}
这里的问题是我不完全确定return 在此代码中的何处停止、跳过和继续以实现我的需要。
- CONTINUE:表示请求处理应该正常继续。
- STOP:表示请求处理应该停止,return 来自过滤器的当前响应。
- SKIP:表示在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
希望对您有所帮助。
这是我需要修复的过滤器代码。过滤器背后的想法是,如果找到了一些查询字符串。处理它,不需要 return 或处理链或类似的东西。然而,当没有找到查询字符串时,应该为原始请求提供服务,例如get/put/update/delete请求。
@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;
}
这里的问题是我不完全确定return 在此代码中的何处停止、跳过和继续以实现我的需要。
- CONTINUE:表示请求处理应该正常继续。
- STOP:表示请求处理应该停止,return 来自过滤器的当前响应。
- SKIP:表示在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
希望对您有所帮助。