JAX-RS 2.0如何验证查询参数

原创 2017年06月08日 21:36:57

JAX-RS 2.0如何验证查询参数

  • 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

在JAX-RS 2.0规范中,要验证查询参数并不难,可以通过过滤器ContainerRequestFilter来实现。它还提供了一些可选项,例如使用CDI或EJB的拦截器,或通过@Context注解的HttpServletRequest进行注入。

使用场景:验证由调用者传递的查询参数

步骤:

  1. 实现过滤器
  2. 从ContainerRequestContext上下文中提取查询参数
  3. 执行验证——以适合的响应状态(和错误消息)中止请求

    @Provider
    @QueryParamValidator
    public class JAXRSReqFilter implements ContainerRequestFilter {
    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {
    MultivaluedMap < String, String > queryParameters = requestContext.getUriInfo().getQueryParameters();
    String queryParam = queryParameters.keySet().stream().findFirst().get();
    System.out.println(“Query param - ” + queryParam);
    if (!queryParam.equals(“p”)) {
    requestContext.abortWith(Response
    .status(Response.Status.BAD_REQUEST)
    .entity(“Invalid Query Param ” + queryParam)
    .build());
    }
    }
    }

强制过滤器

  • 使用@NameBinding注解来修饰自定义的注解
  • 在JAX-RS的方法上使用自定义的注解

    @NameBinding
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.TYPE, ElementType.METHOD})
    public @interface QueryParamValidator {
    // do something
    }

    @Path(“test”)
    public class TestResource {
    @GET
    @QueryParamValidator
    public String test(@QueryParam(“p”) String p){
    return “Param “+ p + ” on ” + new Date();
    }
    }

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。

JAX-RS REST客户端实现基本身份验证机制

《JAX-RS REST客户端实现基本身份验证机制》作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs很多SaaS API项目提供了HTTP...
  • chszs
  • chszs
  • 2015年07月02日 13:47
  • 4317

Jersey学习记录(二)--请求映射和页面传值

jersey的webservice开发基本上都是使用注解,接下来学习常用注解.一.根资源类1.@PATH注解@Path("/hello") public class HelloWorldControl...

JQuery validate验证规则

//定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网...
  • sunhuwh
  • sunhuwh
  • 2014年04月19日 09:19
  • 68435

JAX-RS 2.0 REST客户端编程实例

导读 JAX-RS 2.0 又称 JSR 339 不仅定义了一套用于构建 RESTful 网络服务的 API,同时也通过增强客户端 API 功能简化了REST 客户端的构建过程。 JA...

Restlet 2.0 与 Spring集成,并遵循JAX-RS标准,JSR311

先声明我只是给出一个work-around plan,还有些不尽如人意的地方(文章最后会指出)。 首先,给出web.xml 和spring cofng xml web.xml ...

JAX-RS3:路径参数

JAX-RS 的核心功能是处理向 URI 发送的请求,所以它提供了一些匹配模式以便简化对 URI 的解析。楼主在本系列的上一篇文章中已经使用了最简单的路径参数,本文将介绍一些稍微高级点的咚咚。 ...

RESTful Java with JAX-RS 2.0

  • 2013年12月22日 18:39
  • 7.12MB
  • 下载

RESTful Java with JAX-RS 2.0, 2nd Edition

  • 2017年03月24日 13:16
  • 7.32MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAX-RS 2.0如何验证查询参数
举报原因:
原因补充:

(最多只允许输入30个字)