home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Implementierung einer Sitzungsverfolgung (Session)

Durh eine Session lässt sich der Zustand (State) einer Anwendung merken. So können wiederkehrende Anfragen eines Benutzers erkannt werden.


Die Klasse HttpSession kapselt das Session-Handling und übergibt (falls erlaubt) dem Client ein Cookie.

In die HttpSession (HashMap) können unter verschiedenen Schlüsseln Objekte (z.B. User-ID, Warenkorb, usw.) abgelegt werden.

Um eine Sitzungsverfolgung (Session) in einem Servlet zu realisieren, verwendet man die Session-Tracking-API.

 

Dieses Beispiel realisiert die Anzahl der Aufrufe einer Seite mithilfe eines HttpSession-Objekts.

Session Beispiel

package servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/ZaehlServlet")
public class ZaehlServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    public ZaehlServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        Integer zahl = (Integer)session.getAttribute("UnserZahl");
        if(zahl == null){
            zahl = new Integer(0);
        }
        int i = zahl.intValue();
        i = i + 1;
        zahl = new Integer(i);
        session.setAttribute("UnserZahl", zahl);
        response.getWriter().write("Sie sind das " + zahl + ". Mal auf dieser Seite");
    }

}