Java 将会话参数传递给线程

Java 将会话参数传递给线程,java,multithreading,servlets,Java,Multithreading,Servlets,当用户单击submit按钮时,我想在Servlet的web项目中同时执行两项任务 1.运行代码以触发某些后端活动 2.向用户显示网页 我尝试了代码示例 因为我设置的会话属性很少,所以我需要在一个线程中设置它。我尝试将点一放在一个线程中,点二放在第二个线程中,但变量并没有从doPost()方法解析为线程 Servlet: public class JOBRUN extends HttpServlet{ protected void doGet(HttpServletRequest request,

当用户单击submit按钮时,我想在Servlet的web项目中同时执行两项任务
1.运行代码以触发某些后端活动
2.向用户显示网页
我尝试了代码示例

因为我设置的会话属性很少,所以我需要在一个线程中设置它。我尝试将点一放在一个线程中,点二放在第二个线程中,但变量并没有从doPost()方法解析为线程

Servlet:

public class JOBRUN extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse     response) throws ServletException, IOException {
     AESASNewOpenPeriod=request.getParameter("AESASNewOpenPeriod");
     ScriptRunOption = Integer.parseInt(request.getParameter("AESASJOBRUNOPTION"));
     HttpSession session=request.getSession();
     String Stream="aaaa";
     session.setAttribute("AEStream", Stream);
     //Do Job 1 (Update table)
     //Do Job 2 (Display webpage to user)
        }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);

}

您可以创建一个匿名线程(如果您不想为作业1创建专用的
线程
类)

另外,如果您只想传递一些属性来执行作业1(即,如果您不想更改会话),则可以只传递相关属性

String threadStream = session.setAttribute("AEStream");//local memeber variable  inside anonymous thread
然后从线程后的下一行开始,您可以执行作业2


注意:如果您指的是其他内容—运行带请求的非同步工作线程,您可以从Servlet 3.x开始,您可以显示代码:您尝试了什么?您不需要将会话参数传递给线程。线可以自己得到它们。不清楚你在问什么。@a3.14u Infinity:用servlet更新code@EJP:参考上述代码,我想同时执行“作业1”和“作业2”。您想在请求范围内执行这些任务吗?i、 e,您希望它作为阻塞-这意味着只有在完成2个任务后,响应才会被发回?
String threadStream = session.setAttribute("AEStream");//local memeber variable  inside anonymous thread