我有一个基于Java的服务器应用程序,使用maven进行依赖关系管理,使用tomcat服务器来托管它。我有一堆物联网设备一直在发送不同类型的有效载荷。请注意,有效负载的大小从1 MB到80 MB不等。所以,我想跟踪每个设备的数据使用情况。
我可以编写过滤器或拦截器来检查所有API请求的有效负载,而不是在每个API上编写有效负载大小检查吗?此外,如果有效负载高于80 MB,我想拒绝有效负载。
如果有任何意义,请告诉我。
答案 0 :(得分:0)
您可以使用过滤器执行此操作,如下所示:
public class PayLoadCheckFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
if (request.getContentLength() > 80e+07) {
((HttpServletResponse) response).setStatus(503);
}
else {
filterChain.doFilter(request, response);
}
}
@Override
public void destroy() {
}
有关如何将过滤器添加到web.xml的信息,请参阅here。