【发布时间】:2015-10-03 09:36:33
【问题描述】:
一旦用户单击提交按钮,我想在 Servlet 的 Web 项目中同时执行两项任务
1. 运行代码来触发一些后端活动
2. 向用户显示网页。
我尝试了代码示例here
由于我设置的会话属性很少,我需要在其中一个线程中进行设置。我尝试将第一个点放在一个线程中,第二个点放在第二个线程中,但变量没有从 doPost() 方法解析到线程。
小服务程序:
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);
}
【问题讨论】:
-
你能显示代码吗:你尝试了什么?
-
您不需要将会话参数传递给线程。线程可以自己获取它们。不清楚你在问什么。
-
@a3.14_Infinity: 用 servlet 代码更新
-
@EJP:参考上面的代码,我想同时执行“Job 1”和“Job 2”。
-
你想在请求的范围内做这些任务吗?即,您希望它作为阻塞 - 意味着只有在完成 2 个任务后,才应该发回响应?
标签: java multithreading servlets