首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程处理jsp?

多线程处理jsp?
EN

Stack Overflow用户
提问于 2011-09-20 22:39:23
回答 4查看 4.3K关注 0票数 1

我刚接触jersey,jsp和web应用程序开发,所以希望这不是一个愚蠢的问题。我有一个jsp,目前当用户点击按钮时,它会启动一个超文本传输协议请求,大约需要5-10分钟才能返回。一旦完成,它们就会被重定向到另一个页面。

我在想,有没有可能或者甚至是可取的做法,我将应用程序多线程,这样繁重的处理就会开始,但是用户会立即被重定向到下一个.jsp。如果多线程是不可能的,你会推荐其他方法来处理web应用程序中的繁重处理吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-20 22:46:44

JSP基本上是一个Servlet (它被转换成Java Servlet类并进行编译)。从理论上讲,您可以在servlet中(因此在JSP中,通过scriptlet)启动一个新线程,但由于多种原因,并不建议这样做。

最好是通过ajax进行异步HTTP调用,一旦调用完成,立即向用户显示其他内容,并在回调返回时显示结果。

票数 3
EN

Stack Overflow用户

发布于 2011-09-20 23:20:37

与其每次都创建一个新线程,不如使用一个不断轮询共享队列的工作线程来提高效率。例如,使用您的web请求的ArrayBlockingQueue可以简单地将对象添加到队列并返回给用户,而您的工作线程(或重复调度的作业)可以处理繁重的处理。

票数 2
EN

Stack Overflow用户

发布于 2011-09-20 22:44:29

您可以创建一个TimerTask (或Quartz Job)并将其设置为立即执行,然后将用户重定向到其他页面,而不是在JSP中等待流程完成。让Job将结果存储在可由另一个JSP访问中心位置(如果您想稍后提取Job的结果,可能是通过ajax)。这样做,您就不必手动管理线程(这很容易出错),您获得了异步功能,用户在大约5-10分钟内不需要看到空白浏览器屏幕。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7487034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档