Theo tôi biết Java Servlets đang xử lý nhiều yêu cầu đồng thời và tôi đã tìm kiếm qua StackOverflow cũng như Google và xác nhận những gì tôi nghĩ. Tuy nhiên tôi khá bối rối ngay bây giờ, tôi đã viết một servlet đơn giản dường như thể hiện hành vi chặn.Servlet dường như xử lý nhiều yêu cầu trình duyệt đồng thời
vì vậy tôi có một Servlet đơn giản:
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");
}
}
Sau đó, tôi có 2 cửa sổ trình duyệt, tôi mở tại ~ cùng thời điểm đó nhấn Servlet của tôi. Và kết quả là yêu cầu đầu tiên chặn yêu cầu thứ hai. Nhật ký cũng hiển thị:
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
Tôi cảm thấy mình thiếu thứ gì đó ... Servlets có khả năng xử lý yêu cầu đồng thời, nhưng dường như nó không hoạt động. Tôi cũng đã làm tương tự như trên phương pháp dịch vụ thay vì doGet và nó làm điều tương tự.
Mọi con trỏ?
Cảm ơn
Trình duyệt của bạn có thể nối tiếp các yêu cầu, điều gì sẽ xảy ra nếu bạn thử điều này từ 2 máy tính khác nhau hoặc với 2 trình duyệt khác nhau? (ví dụ: iexploere và firefox) Bạn cũng có thể kiểm tra nhật ký truy cập http để xem liệu các yêu cầu có đồng thời đến thùng chứa servlet của bạn hay không. – rsp
Bạn có thể hiển thị 'web.xml' và (giả định đây là tomcat)' server.xml' không. – beny23
@beny: Tôi không chắc chính xác điều đó sẽ hữu ích như thế nào trong việc hiểu nguyên nhân của vấn đề. Bạn có thể xây dựng? – BalusC