Tạo bộ đếm số người online với Servlet
Bài viết này hướng dẫn bạn cách viết bộ đếm số người online (online user counter) bằng cách sử dụng Java Servlet.
Để viết class đếm số người online trong ứng dụng servlet sử dụng interface javax.servlet.http.HttpSessionListener, interface có 2 phương thức có thể sử dụng cho việc đếm số lượt người (session) online là sessionCreated(HttpSessionEvent se) và sessionDestroyed(HttpSessionEvent se). Những phương thức này sẽ được gọi khi một session mới được tạo (sessionCreated) hoặc một session bị hủy (sessionDestroyed). Class dưới đây minh họa cách sử dụng này:
- importjavax.servlet.http.HttpSessionEvent;
- importjavax.servlet.http.HttpSessionListener;
- importjavax.servlet.http.HttpSession;
- importjava.util.List;
- importjava.util.ArrayList;
- publicclassSessionCounter implementsHttpSessionListener
- {
- privateList sessions = newArrayList();
- publicSessionCounter()
- {
- }
- publicvoidsessionCreated(HttpSessionEvent event)
- {
- HttpSession session = event.getSession();
- sessions.add(session.getId());
- session.setAttribute("counter", this);
- }
- publicvoidsessionDestroyed(HttpSessionEvent event)
- {
- HttpSession session = event.getSession();
- sessions.remove(session.getId());
- session.setAttribute("counter", this);
- }
- publicintgetActiveSessionNumber()
- {
- returnsessions.size();
- }
- }
Thông tin số người online được hiển thị lên trang JSP như sau:
- <%@ page import="servletdemo.SessionCounter" %>
- <html>
- <head>
- <title>Session Counter</title>
- </head>
- <body>
- <%
- SessionCounter counter = (SessionCounter) session
- .getAttribute("counter");
- %>
- Number of online user(s): <%= counter.getActiveSessionNumber() %>
- </body>
- </html>
Để class trên chạy được cần đăng ký trong file web.xml như sau:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE web-app
- PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd">
- <web-app>
- <listener>
- <listener-class>
- servletdemo.SessionCounter
- </listener-class>
- </listener>
- </web-app>
[Nghean-Aptech st]
Các tin mới hơn:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
Kết nối CSDL MySQL bằng Visual C#.
Lập trình kết nối CSDL từ Java vào MySQL.
Tạo ứng dụng web JSP hỗ trợ đa ngữ.
Tối ưu việc nạp ảnh với Lazyload.
Cách sử dụng thẻ Struts .