JavaServlet过滤器更改响应?
我有下面的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
}
}
我有上面的过滤器。我的要求是拦截请求。我需要检查请求中的一些布尔值。若布尔变量为true,则应继续请求处理。若布尔变量为false,那个么请求将不会继续,我需要发送一些自定义响应,如下所示
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);
}
}
如果请求布尔变量的值为false,那么我必须将上述自定义状态设置为response并返回,而不处理请求。我该怎么做
谢谢
# 1 楼答案
如果通过扩展Filter来创建
Filter
,则可以执行以下操作:# 2 楼答案
使用过滤器界面:
再具体不过了,因为您没有说要检查的布尔值的确切位置(是参数、URL的一部分、cookie或标头?),你也没有说你想对回复做什么