Java应用程序使用POST请求并打开显示内容的新浏览器页面

Java应用程序使用POST请求并打开显示内容的新浏览器页面,java,angular,Java,Angular,我在寻找设计建议。外部供应商正在HTTP POST请求中向我发送数据,我将在Java应用程序中使用该请求。我需要使用这些数据,然后将其显示在新的浏览器网页中 目前,我使用POST请求,将数据存储在缓存中,然后让供应商将用户重定向到我的Angular UI页面,该页面执行HTTP获取并检索刚刚发布的数据,然后清除缓存 这是可行的,但我知道这不是最好的解决办法。有什么想法吗 这是我的控制器类代码的简化版本 公共类myController{ @Inject IVendorObject obj; @I

我在寻找设计建议。外部供应商正在HTTP POST请求中向我发送数据,我将在Java应用程序中使用该请求。我需要使用这些数据,然后将其显示在新的浏览器网页中

目前,我使用POST请求,将数据存储在缓存中,然后让供应商将用户重定向到我的Angular UI页面,该页面执行HTTP获取并检索刚刚发布的数据,然后清除缓存

这是可行的,但我知道这不是最好的解决办法。有什么想法吗

这是我的控制器类代码的简化版本

公共类myController{

@Inject
IVendorObject obj;

@Inject
CacheManager cache;

@POST
@Path("/post-vendor-data")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createThisObject(@Valid VendorObject obj) {
    cache.put("myKey", obj);    
    return Response.ok(OBJ).build();
}

@GET
@Path("/get-vendor-data")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public VendorObject getThisObject() {
    obj = cache.get("myKey"); 
    cache.remove("myKey");
    return obj;
}   

}

对于任何有类似需求的人来说,这是一个更好、可能也是最简单的选择,这要感谢edwgiz上面的评论激励我朝着这个方向努力

缓存、重定向和角度调整已经被消除,我只是将请求转发到一个jsp页面。上述两种方法现已简化为:

    @POST
    @Path("/post-vendor-data")
    @Produces(MediaType.TEXT_HTML)
    @Consumes(MediaType.APPLICATION_JSON)
    public void createThisObject(@Valid VendorObject obj) throws IOException, ServletException {
        RequestDispatcher view = request.getRequestDispatcher("/index.jsp");
        request.setAttribute("myObject", obj);
        view.forward(request, response);
    }

对于任何有类似需求的人来说,这是一个更好、可能也是最简单的选择,这要感谢edwgiz上面的评论激励我朝着这个方向前进

缓存、重定向和角度调整已经被消除,我只是将请求转发到一个jsp页面。上述两种方法现已简化为:

    @POST
    @Path("/post-vendor-data")
    @Produces(MediaType.TEXT_HTML)
    @Consumes(MediaType.APPLICATION_JSON)
    public void createThisObject(@Valid VendorObject obj) throws IOException, ServletException {
        RequestDispatcher view = request.getRequestDispatcher("/index.jsp");
        request.setAttribute("myObject", obj);
        view.forward(request, response);
    }

供应商可以在开始时通过POST请求重定向到YourUI页面,其中包含现在正在缓存的所有数据。我希望:)也许我误解了你,但我不相信你可以直接向UI页面发送POST请求,除非它是一个简单的HTML表单POST。这是可能的,而且它被广泛使用。如果数据只显示在一个页面上,那么所有接收到的数据都可以在返回的HTML中以json的形式存储在
script
标记中。否则,我会将数据保存在用户的http会话中。谢谢,我正在探索第一个选项。供应商可以在开始时通过POST请求重定向到your UI页面,其中包含现在正在缓存的所有数据。我希望:)也许我误解了你,但我不相信你可以直接向UI页面发送POST请求,除非它是一个简单的HTML表单POST。这是可能的,而且它被广泛使用。如果数据只显示在一个页面上,那么所有接收到的数据都可以在返回的HTML中以json的形式存储在
script
标记中。否则我会将数据保存在用户的http会话中。谢谢,我正在探索第一个选项。