【发布时间】:2013-11-25 15:13:40
【问题描述】:
我有以下 servlet 过滤器。
public class MyFilter extends BaseServletRequestFilter {
@Override
protected void afterExecutingFilterChain(final ServletRequest requset, FilterResponseWrapper response) throws ServletException {
//To do
}
@Override
protected void beforeExecutingFilterChain(final ServletRequest requset, final FilterResponseWrapper response) throws ServletException{
//Here request needs to be intercepted
//To do
}
}
我有以上过滤器。我的要求是我需要拦截请求。我需要检查请求中的一些布尔值。如果布尔变量为真,则应继续请求处理。如果布尔变量为假,则请求不应继续,我需要发送一些自定义响应,如下所示。
public enum CustomStatus {
OK("Ok"),
BAD_REQUEST("BadRequest");
private final String value;
CustomStatus(String v) {
value = v;
}
public String value() {
return value;
}
public static CustomStatus fromValue(String v) {
for (CustomStatus c: CustomStatus.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
如果请求布尔变量的值为假,那么我必须将上述自定义状态设置为响应并返回而不处理请求。我该怎么做?
谢谢!
【问题讨论】: