gpt4 book ai didi

java - 如何在后台运行进程并重定向jsp页面

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:15 27 4
gpt4 key购买 nike

我正在使用 Jsp 和 servlet。在我的一个 jsp 页面中,我将调用一个 .sh 文件,该文件将执行 2-3 分钟,该过程完成后它将重定向到另一个 jsp 页面。我的问题是用户必须等待 2-3 分钟,然后在流程完成后,只有他被重定向到下一页。我不希望发生这种情况,我想启动必须在后台运行的进程,并且我希望页面立即重定向。

process.jsp页面

FileWriter fileWriter = new FileWriter(file3,true);
BufferedWriter bufferFileWriter = new BufferedWriter(fileWriter);
fileWriter.append(userid+"\t"+movie_id[i]+"\t"+ratings[i]);
fileWriter.append('\n');
bufferFileWriter.close();

Process p=Runtime.getRuntime().exec("/home/yoganandhd/project.sh");
p.waitFor();

response.sendRedirect("login.jsp");

在上面的代码中,执行project.sh将需要3分钟,其中它将执行一些数据挖掘过程,然后仅将其重定向到login.jsp页面。我的要求是用户不能等待3分钟,必须通过后台运行project.sh立即重定向到下一页。

我是个新手,我对java不太了解,有人能告诉我如何实现这一点吗?我可以使用线程来实现这一点吗?如果是的话怎么办?请有人用相同场景的示例向我解释一下。

最佳答案

您可以创建一个新线程并单独执行shellscript。

public class MyThread extends Thread {

public void run(){
Process p=Runtime.getRuntime().exec("/home/yoganandhd/project.sh");
p.waitFor();
}
}

现在从实际流程中调用该线程,如下所示,而不是直接调用作业。

MyThread myThread = new MyThread();
myThread .start();

关于java - 如何在后台运行进程并重定向jsp页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com