【问题标题】:Calling jersey client by button click通过按钮单击调用球衣客户
【发布时间】:2017-01-13 12:04:37
【问题描述】:

我有一个 jersey 客户端类,它正在发出一个 put 请求。

//泽西客户端

public void putRequest() throws Exception{
        reloadUri();
        Response response = target.request(MediaType.APPLICATION_JSON)
                .accept("application/json;charset=UTF-8")
                .header("Content-Type", "application/json")
                .header("Authorization", "Basic OTA1MzAwNjY3MDg2OjZ4dDg5dk50VXdCbg==")
                .put(Entity.entity(sub, MediaType.APPLICATION_JSON),Response.class);


        System.out.println(response);
        if(response.getStatus() == 200) {
            System.out.println("put request using Json is Success");
        }
    }

它工作正常,但我想通过单击按钮来调用此函数。这个按钮放在我的一个jsp文件中。那么,有没有办法在单击按钮时在该jsp文件中调用此请求。并根据rest的响应将页面重定向到新的jsp。

【问题讨论】:

    标签: javascript java jsp web-applications jersey


    【解决方案1】:

    不直接由jsp。如果将这段代码包含在jsp中,则会在服务器解析jsp页面时执行。

    您应该将它包含在一个 Java 组件中,该组件将由 Servlet(或控制器、过滤器等)调用。您的 jsp 中的按钮将调用执行该组件的 URL,并且在那里您必须对结果执行任何您需要的操作。

    如果你想在点击按钮的同时直接在jsp中执行,你必须在客户端使用javascript。

    【讨论】:

      【解决方案2】:

      您可以使用 URL 引用调用此方法:

      为方法定义路径注释:

      @Path("/PATH")
          @GET// or @POST
          public void putRequest() throws Exception{
       ...
      }
      

      然后,您可以从您的 jsp 页面定义按钮以重定向到此 URL 以启动上述方法。

      您可以阅读更多关于球衣注释的信息here

      【讨论】:

      • 感谢您的快速回复,我有一个问题,我给出了 put 函数的路径,但是当我通过按钮重定向时,我应该如何给出路径。我是否必须使用 window.location.href="localhost:9999/myIndex.jsp/path" 或其他不同的东西。 @gal-dreiman
      • 你需要重定向到方法的完整路径。例如:localhost:9999/ApplicationName/ClassName/MethodName
      • 但如果我应该使用 applicationName、className 和 methodName,为什么我要给出它的路径。我可以使用此路径而不是 methodName 吗? @gal-dreiman
      • 这就是 Jersey 的工作原理:你可以通过 HTTP 请求调用一个方法,然后 jersey 解释请求和路径。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2017-10-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 2011-05-27
      相关资源
      最近更新 更多