Servlet parece manejar múltiples solicitudes concurrentes de navegador sincrónicamente

Por lo que sé, Java Servlets está manejando múltiples solicitudes al mismo tiempo y he buscado a través de StackOverflow y de Google, y confirmé lo que pensaba. Sin embargo, estoy bastante confundido en este momento, escribí un servlets simple que parece mostrar un comportamiento de locking.

entonces tengo un Servlet simple:

public class MyServlet extends HttpServlet { private static final long serialVersionUID = 2628320200587071622L; private static final Logger logger = Logger.getLogger(MyServlet.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { logger.info("[doGet] Test before"); try { Thread.sleep(60000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } logger.info("[doGet] Test after"); resp.setContentType("text/plain"); resp.getWriter().write("OK"); } } 

Luego tengo 2 ventanas de navegador, las abrí al mismo tiempo que golpeé mi Servlet. Y el resultado es la primera solicitud que bloquea el 2º. El registro también muestra:

 10:49:05,088 [http-8383-Processor14] INFO MyServlet - [doGet] Test before 10:50:05,096 [http-8383-Processor14] INFO MyServlet - [doGet] Test after 10:50:05,106 [http-8383-Processor22] INFO MyServlet - [doGet] Test before 10:51:05,112 [http-8383-Processor22] INFO MyServlet - [doGet] Test after 

Siento que me falta algo … Se supone que Servlets puede manejar pedidos simultáneos, pero parece que no lo está haciendo. También hice lo mismo que el anterior en el método de servicio en lugar de doGet y hace lo mismo.

¿Alguna sugerencia?

Gracias

Su navegador aparentemente está usando la misma conexión HTTP en diferentes ventanas. El contenedor de servlets usa un único hilo por conexión HTTP, no por solicitud HTTP. Debes ejecutar dos webbrowsers físicamente diferentes para probar esto correctamente. Por ejemplo, un Firefox y un Chrome.