по какой-то причине я хочу проверить, как тупик произошел в веб-приложении, поэтому я использовал код ниже, но когда я развертываю веб-приложение и проверяю его, я не попал в тупик положение дел !! любая помощьНеобходимость тупика в веб-приложении
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.util.ArrayList;
import java.io.IOException;
import java.io.PrintWriter;
public class DeadLockServlet extends HttpServlet
{
public static ArrayList student = new ArrayList();
public static ArrayList employee = new ArrayList();
PrintWriter out;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String lsAction = request.getParameter("action");
String lsValue = request.getParameter("data");
out = response.getWriter();
String msg = "";
if (lsAction != null)
{
if (lsAction.equals("addStudent"))
{
addStudent(lsValue);
msg = "Student added: "+lsValue;
}
else if (lsAction.equals("addEmployee"))
{
addEmployee(lsValue);
msg = "Employee added: "+lsValue;
}
}
else
{
msg = "Invalid Request";
}
request.setAttribute("msg", msg);
request.setAttribute("student", student);
request.setAttribute("employee", employee);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
public void addStudent(String lsValue)
{
synchronized (employee)
{
synchronized (student)
{
if (lsValue != null && !lsValue.equals(""))
{
student.add(lsValue);
}
}
}
}
public void addEmployee(String lsValue)
{
synchronized (student)
{
synchronized (employee)
{
if (lsValue != null && !lsValue.equals(""))
{
employee.add(lsValue);
}
}
}
}
}
Я предполагаю, что вы использовали приложение таким образом, чтобы убедиться, что он должен будет обслуживать два или более запросов одновременно? (другими словами, вы попадаете в один и тот же URL из двух отдельных браузеров в одно и то же время; взаимоблокировки - это боль для воспроизведения) –
Я сделал то, что вы сказали, но ничего не произошло – Tahani