Aufzeichnung von Webseitenzugängen mit Listenern

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du eine Funktion zur Verfolgung des Zugangs zu einer Webseite mit einem Listener implementierst. Ziel dieses Projekts ist es, eine Webanwendung zu erstellen, die die Anzahl der Benutzer anzeigen kann, die derzeit die Startseite besuchen.

👀 Vorschau

Anzahl der Besucher der Webseite

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Klasse MyListener.java implementierst, um die Anzahl der Aufrufe der Startseite zu verfolgen.
  • Wie du die Datei index.jsp implementierst, um die aktuelle Besucherzahl anzuzeigen.
  • Wie du den MyListener in der Datei web.xml konfigurierst.
  • Wie du den Tomcat-Server startest und die Anwendung testest.

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Schnittstelle HttpSessionListener zu verwenden, um Benutzer-Sitzungen zu verfolgen.
  • Die Besucherzahl im ServletContext zu speichern und abzurufen.
  • Die Besucherzahl in einer JSP-Datei anzuzeigen.
  • Einen Listener in der Datei web.xml zu konfigurieren.
  • Eine Webanwendung mit Tomcat zu starten und zu testen.

Implementiere die Klasse MyListener.java

In diesem Schritt lernst du, wie du die Klasse MyListener.java implementierst, um die Anzahl der Aufrufe der Startseite zu verfolgen.

  1. Öffne die Datei MyListener.java im Verzeichnis ListenerProject/src/main/java/org/labex/listener.

  2. Implementiere die Klasse MyListener, die das Interface HttpSessionListener implementiert. Dieses Interface bietet zwei Methoden: sessionCreated() und sessionDestroyed().

  3. In der Methode sessionCreated() mach das Folgende:

    • Hol dir den ServletContext aus dem HttpSessionEvent-Objekt.
    • Hole das Attribut "count" aus dem ServletContext. Wenn das Attribut null ist, initialisiere es mit 1. Andernfalls erhöhe den Zähler um 1.
    • Setze das aktualisierte Attribut "count" zurück in den ServletContext.
  4. In der Methode sessionDestroyed() mach das Folgende:

    • Hol dir den ServletContext aus dem HttpSessionEvent-Objekt.
    • Hole das Attribut "count" aus dem ServletContext. Wenn der Zähler größer als 0 ist, verringere den Zähler um 1.
    • Setze das aktualisierte Attribut "count" zurück in den ServletContext.

Deine Klasse MyListener.java sollte so aussehen:

package org.labex.listener;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class MyListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();
        Integer count = (Integer) context.getAttribute("count");

        if (count == null) {
            count = 1;
        } else {
            count++;
        }

        context.setAttribute("count", count);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();
        Integer count = (Integer) context.getAttribute("count");

        if (count!= null && count > 0) {
            count--;
        }

        context.setAttribute("count", count);
    }
}
✨ Lösung prüfen und üben

Implementiere die Datei index.jsp

In diesem Schritt lernst du, wie du die Datei index.jsp implementierst, um die Anzahl der Aufrufe der Startseite anzuzeigen.

  1. Öffne die Datei index.jsp im Verzeichnis ListenerProject/src/main/webapp.

  2. Importiere in der JSP-Datei die erforderlichen Klassen:

    • javax.servlet.ServletContext
    • javax.servlet.http.HttpServletRequest
  3. Implementiere eine Methode namens getVisitorsCount(), die ein HttpServletRequest-Objekt als Parameter nimmt. In dieser Methode mach das Folgende:

    • Hole den ServletContext aus dem HttpServletRequest-Objekt.
    • Hole das Attribut "count" aus dem ServletContext. Wenn das Attribut null ist, gib 0 zurück. Andernfalls gib den Zählerwert zurück.
  4. In der JSP-Datei zeige die aktuelle Besucherzahl an, indem du die Methode getVisitorsCount() aufrufst und das Ergebnis in das HTML einbettest.

Deine Datei index.jsp sollte so aussehen:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@ page import="javax.servlet.ServletContext" %> <%@
page import="javax.servlet.http.HttpServletRequest" %>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Index Page</title>
  </head>
  <body>
    <%! public int getVisitorsCount(HttpServletRequest request) { ServletContext
    context = request.getServletContext(); Integer count = (Integer)
    context.getAttribute("count"); return (count!= null)? count : 0; } %>

    <h1>Willkommen auf meiner Website</h1>
    <p>Aktuelle Besucher: <%= getVisitorsCount(request) %></p>
  </body>
</html>
✨ Lösung prüfen und üben

Konfiguriere den Listener in der web.xml

In diesem Schritt lernst du, wie du den MyListener in der Datei web.xml konfigurierst.

  1. Öffne die Datei web.xml im Verzeichnis ListenerProject/src/main/webapp/WEB-INF.

  2. Füge die folgende Konfiguration zur Datei web.xml hinzu:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- Definiere deinen Listener -->
    <listener>
        <listener-class>org.labex.listener.MyListener</listener-class>
    </listener>

</web-app>

Diese Konfiguration registriert die Klasse MyListener als Listener in der Webanwendung.

✨ Lösung prüfen und üben

Starte den Tomcat-Server und teste die Anwendung

  1. Öffne ein Terminal und navigiere mit dem folgenden Befehl zum Verzeichnis ListenerProject:

    cd ~/project/ListenerProject/
  2. Starte den Tomcat-Server mit dem folgenden Befehl:

    mvn clean tomcat7:run
  3. Öffne einen Webbrowser und gehe zu http://localhost:8080. Du solltest die Seite "Willkommen auf meiner Website" sehen, auf der die aktuelle Besucherzahl angezeigt wird.

  4. Aktualisiere die Seite ein paar Mal, und du solltest die Besucherzahl erhöhen sehen.

  5. Schließe den Browser und warte einige Minuten. Aktualisiere die Seite erneut, und du solltest die Besucherzahl verringern sehen.

Herzlichen Glückwunsch! Du hast erfolgreich die Funktion zur Verfolgung des Zugangs zu einer Webseite mit einem Listener implementiert.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.