zoukankan      html  css  js  c++  java
  • REST技术第二步 获取URL中的參数

    获取请求的參数。rest技术相对于servlet来说要方便很多。

    Servlet我们要获取请求的參数,非常麻烦啊。须要request.getParameter(“”)。假设我们要的是int,float这些东西,还须要去转换。

    尽管说有ognl这种工具能够帮忙类型转换,自己主动设置对象值。还是麻烦。

    可是rest就很方便。提供了一种注解的机制来自己将http请求參数类型转换成rest的方法參数。不不过http的请求參数。还支持cookie參数,路径參数等等。

    那么我们来见识下申请的rest

    @Cookieparam

    @FormParam

    @HeaderParam

    @MatrixParam

    @PathParam

    @QueryParam

    @BeanParam

    总共7个注解。

    这里我先介绍下下面三个注解

    @MatrixParam

    @PathParam

    @QueryParam

    这三个注解都是从URL里面取东西的。

    @MatrixParamURL分号(;)后面的參数。

    这个也要注意。一定要在?

    号前面。

    @PathParamURL路径里的參数。使用的时候须要注意。要在@Path注解内放一个变量,用{}括起来。然后才干够使用。

    @QueryParamURL?

    后面的请求參数。

    那么如今就简单地搭个环境啦

    package restparams;
     
    import javax.ws.rs.ApplicationPath;
    import javax.ws.rs.core.Application;
    @ApplicationPath("rest")
    public class MyApplication extends Application {
     
    }

    这样的配置方式取代了xml的配置方式。指定了全部rest资源类的URL前缀。然后再写资源类。

    package restparams;
     
    import javax.ws.rs.GET;
    import javax.ws.rs.MatrixParam;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import javax.ws.rs.QueryParam;
     
    @Path("/max/{a}.html")
    public class Max {
     
    	@GET
    	@Produces("text/html")
    	public String max(@PathParam("a") int a, @QueryParam("b") int b, @MatrixParam("c") int c) {
    		int max = a;
    		if (b > max) {
    			max = b;
    		}
    		if (c > max) {
    			max = c;
    		}
    		return "The max number is " + max;
    	}
    }

    在@Path()注解中的{a}。能够将这段路径的值放入一个变量a中。比方/max/12.html,a的值就是12。

    在以下的方法中就使用了@PathParam注解,将这个变量a注入到了int a中。

    以下这个URL,c是分号(;)后面的參数。所以是MatrixParam。查询參数就是get请求经常使用的,在问号(?)后面。

    http://localhost:8080/restparams/rest/max/5.html;c=2?b=3

    这个URL的訪问结果就是这样子的。

     

  • 相关阅读:
    Storm应用系列之——集成Kafka
    Storm常见模式——分布式RPC
    Storm常见模式——流聚合
    博客迁移
    设计模式学习笔记
    JStorm模型设计
    MySQL学习笔记
    JAVA学习笔记
    JavaScript学习笔记
    用ACE来写代码
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7090461.html
Copyright © 2011-2022 走看看