我将 HttpServletRequest 对象传递给线程,然后返回它。该线程将执行很长时间,但在此之前我返回请求。因此我无法访问 Thread 中的 HttpServletRequest 对象。那么有没有办法在整个线程执行过程中保留 HttpServletRequest 对象,即使在完成其 session 之后也是如此?
public String execute(HttpServletRequest request){
Runnable r = new RunnableImplementation(request);
Thread t = new Thread(r);
t.start();
return "Success";
}
注意:RunnableImplementation 的构造函数初始化其本地 HttpServletRequest 对象,然后在其 run() 方法中使用它。
最佳答案
您不需要该请求。您需要在请求中提供一些信息。
只需从请求中提取它们并用它们构造一个对象并将其传递给您的可运行对象。
这里是一个示例代码:
MyThreadRequest myThreadRequest = new MyThreadRequest();
myThreadRequest.setUser((User) request.getAttribute("user"));
Thread t = new Thread(new RunnableImplementation(myThreadRequest));
关于java - 如何在正在运行的线程中持久保存请求对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778800/