栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何过滤JAX-RS中具有无效参数的请求?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何过滤JAX-RS中具有无效参数的请求?

您可以检查使用ContainerRequestFilter并将传递的参数与定义的参数进行比较:

@Providerpublic class RequestParamFilter implements ContainerRequestFilter {    @Context    private ResourceInfo resourceInfo;    @Context    private HttpServletRequest servletRequest;    @Override    public void filter(ContainerRequestContext requestContext) throws IOException {        Set<String> validParams = new HashSet<String>();        Method method = resourceInfo.getResourceMethod();        for (Annotation[] annos : method.getParameterAnnotations()) { for (Annotation anno : annos) {     if (anno instanceof QueryParam) {         validParams.add(((QueryParam) anno).value());     } }        }        for (String param : servletRequest.getParameterMap().keySet()) { if (!validParams.contains(param)) {     requestContext.abortWith(Response.status(Status.BAD_REQUEST).build()); }        }    }}

不要忘记ServletRequest#getParameterMap返回一个Map,该Map包含查询字符串参数和在请求正文中传递的参数。因此,也许您需要自己解析查询字符串。

注意:这不会加快您的应用程序的速度。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454919.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号