Avatar ·

كيف تعمل السيرفلتات: الإنشاء، الجلسات، المتغيرات المشتركة وتعدد الخيوط

مرحباً بالجميع! لقد بدأت للتو في التعامل مع Java EE والسيرفلتات، ولدي فوضى كاملة في رأسي. كتبت سيرفلت بسيط لحساب زيارات الصفحة، لكنه يتصرف بشكل غريب. إليك الكود الخاص بي: ```java @WebServlet("/counter") public class CounterServlet extends HttpServlet { private int counter = 0; // متغير مثيل @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { counter++; resp.getWriter().println("Visits: " + counter); } } ``` عندما أفتح الصفحة في علامتي تبويب مختلفتين في المتصفح، يزداد العداد فجأة بمقدار 2 أو أكثر. كنت أعتقد أنه يتم إنشاء مثيل سيرفلت خاص لكل مستخدم، لكن يبدو أن الأمر ليس كذلك. كما أنني لا أفهم: 1. متى يتم إنشاء السيرفلت بالضبط؟ مرة واحدة عند بدء التشغيل أم عند كل طلب؟ 2. كيف تعمل الجلسات؟ أريد حساب الزيارات لكل مستخدم على حدة. 3. إذا كان السيرفلت