gpt4 book ai didi

java - Servlet 过滤器更改响应?

转载 作者:行者123 更新时间:2023-11-30 04:08:27 24 4
gpt4 key购买 nike

我有以下 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
}


}

我有上面的过滤器。我的要求是我需要拦截请求。我需要检查请求中的一些 boolean 值。如果 boolean 变量为 true,则应继续处理请求。如果 boolean 变量为 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);
}

}

如果请求 boolean 变量的值为 false,那么我必须将上述自定义状态设置为响应并返回而不处理请求。我怎样才能做到这一点?

谢谢!

最佳答案

如果您通过扩展 Filter 创建Filter ,你可以这样做:

public void  doFilter(ServletRequest request, 
ServletResponse response,
FilterChain chain)
if(your status is ok) {
chain.doFilter(request, response);
} else {
((HttpServletResponse) response).sendError(the error code,
"the error message" );
}
}

关于java - Servlet 过滤器更改响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20196515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com