J2EE / JSP控制流问题

时间:2013-09-21 06:14:47

标签: jsp servlets

我是J2EE的新手(虽然不是Java),我有一个问题,我想反对你们中的一些大师。我已经阅读了一些教程,但我仍然有点朦胧。情况就是这样。

我继承了一个jsp,它生成一个存储在数据库中的数据的html表示。我需要修改它,如果传递某个请求参数,除了生成html表示之外,它还将生成数据的替代表示(pdf),它将通过帖子返回给用户url也将在请求参数中指定。所以,我想要做的是(当指定这两个额外的参数时)首先返回HTML表示,然后调用一个单独的jsp / servlet,它将负责生成PDF视图并将其发布回客户端。

我的困惑是如何将控制从最初的jsp传递到我的新jsp,这样第一个jsp就不会被阻止在额外的处理上,并且客户端将接收HTML视图,即使PDF内容正在烹饪。这有意义吗?

我目前的计划是检查jsp底部的scriptlet中的参数,如果它是'true',使用apache HttpClient将请求发布到jsp / servlet(在同一个web应用程序中运行) )负责生成PDF。然后,该servlet将使用HttpClient将成品发布回客户端。我不知道这是否真的是正确的方法,或者即使它会起作用,这就是我发布这个问题的原因。任何意见或建议将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为最好只生成HTML输出并将链接放到第二个Servlet中,这个Servlet会在输出的某个位置生成PDF。这样,如果用户确实想要检索PDF版本,可以单击提供的链接并检索PDF。

如果您的要求是在用户尝试检索HTML版本时生成PDF,最好将请求放在JMS队列中,该队列会生成PDF版本的相应结果并将其存储在临时位置。当用户点击PDF版本的下载链接时,您只需要获取结果(通过JMS生成)并将其作为结果发回。