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