zoukankan      html  css  js  c++  java
  • RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明

    转自:https://www.cnblogs.com/chen-lhx/p/5599806.html

     

    在第一RESTEasy教程我们已经学习了基本的Web服务和休息我们已经测试了一个简单的REST风格的Web服务。在本教程中,我们将
    显示如何将Web应用程序元素(形式参数,查询参数和更多)为REST风格的Web服务。
    你可以使用下面的注释绑定HTTP请求REST风格的Web服务:

    @FormParam
    @PathParam
    @QueryParam
    @HeaderParam
    @CookieParam
    @MatrixParam

    让我们探索所有可能的相互作用。

    @FormParam

    @formparam可以用来注入web表单的参数为REST风格的Web服务。

    下面是一个例子:

     

    resteasy tutorial

    在这里,我们提交一个后请求包含两个参数的电子邮件和密码
    是转化为参数的“E”和“P”的登录方法。
    这里是完整的例子:

    <form method="POST" action="login">
        Email Address: <input type="text" name="email"><br>
        Password:      <input type="text" name="password">
        <input type="submit">
    </form>
    复制代码
    @Path("/")
    public class LoginService
    {
      @POST
      @Path("login")
      public String login(@FormParam("email") String e, @FormParam("password") String p) { 
        return "Logged with " + e + " " + p;
      }
    }
    复制代码

    作为一种替代方法,您可以在类级别上绑定参数电子邮件和密码,如果您需要在不同的其他参数重新使用相同的参数,可以使用它是有用的
    服务方法。

    复制代码
    public class User {
      @FormParam("email")
      private String email;
    
      @FormParam("password")
      private String password;
    }
    复制代码

    你需要修改相应的方法:

     @POST
     @Path("login")
     public String login(@Form User form) {
         return "Logged with " + form.email + " " + form.password;
     }

    @PathParam

    @pathparam标注绑定一个路径段资源的方法参数的值。例如,下面的方法将拦截HTTP GET  http://server:port/login/12345

    “12345”@pathparam转换为字符串“id”

    复制代码
    @Path("/")
    public class LoginService
    {
      @GET
      @Path("login/{zip}")
      public String login(@PathParam("zip") String id) {
         return "Id is " +id;
      }
    }
    复制代码

    作为@formparam,你可以嵌入@pathparam声明在类级别上,如果你喜欢。

    @QueryParam

    @queryparam  标注绑定一个路径段资源的方法参数的值。例如,下面的方法将拦截HTTP GET  http://server:port/login?zip=12345 和
    将查询参数 “zip”  注入到方法参数  “zip”

    复制代码
    @Path("/")
    public class LoginService
    {
     @GET
     @Path("login/{zip}")
      public String login(@QueryParam("zip") String zip) {
         return "Id is " +id;
      }
    }
    复制代码

    @queryparam可以方便快捷使用defaultValue标注以便你能如果没有查询参数是通过避免空指针异常。

     @GET
     @Path("login/{zip}")
     public String login(@DefaultValue("11111") @QueryParam("zip") String zip) {
         return "Id is " +id;
     }

    作为@formparam,你可以嵌入@pathparam声明在类级别上,如果你喜欢。

    @HeaderParam

    @headerparam  标注提取  HTTP标头( HTTP header)并将它绑定到一个方法的参数。

    例子:

    @GET
    public String callService(@HeaderParam("User-Agent") String whichBrowser) {
      ...
    }

    @CookieParam

    @cookieparam注释读取信息存储为一个cookie,并将它绑定到一个方法的参数。例子:

    @GET
    public String callService(@CookieParam("sessionid") String sessionid) {
      ...
    }

    @MatrixParam

    @matrixparam注释可以用来绑定包含多个   property (属性)=value(值)   方法参数表达式。例如,假设你要调用一个网址   http://server:port/login?name=francesco&surname=marchioni

    @GET
    public String callService(@MatrixParam("name") String name,
                                    @MatrixParam("surname") String surname) {
    ...
    }


  • 相关阅读:
    人生苦短我学Java-1-Helloword
    python-51-MySQLdb查询返回dict格式
    IDEA/PyCharm等系列-会了这些设置编码舒服而效率又提高了一截
    jacoco-2-jenkins集成代码测试覆盖率
    jacoco-1-java代码测试覆盖率之本地环境初体验
    wordpress 安装提示 Error Establishing a Database Connection
    mysql 8.0 重置 root 账户密码
    Ubuntu 20.04 卸载 snapd
    VSCode 扩展选择快捷键插件 Quick and Simple Text Selection
    Swagger 响应数据 response 里包含动态变化的对象 key 的方法
  • 原文地址:https://www.cnblogs.com/523823-wu/p/9194049.html
Copyright © 2011-2022 走看看