• RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明


    在第一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) {
    ...
    }
  • 相关阅读:
    【网络】默认路由(路由黑洞,路由终结)
    textstroke(文本描边)和textfillcolor(文本填充色)Css3演示
    enter键提交表单
    Web App和Native App 谁将是未来
    模拟input type=file
    margintop 无效,避开麻烦的margin叠加(margin collapsing)
    用jquery写的简单tab效果
    CSS3下的渐变文字效果实现
    jQuery阻止冒泡和HTML默认操作
    设置文本输入框默认值
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/5599806.html
Copyright © 2020-2023  润新知