Heim  >  Artikel  >  Java  >  Wie betreibt JAVA Sitzungsvariablen in JSP über Servlet?

Wie betreibt JAVA Sitzungsvariablen in JSP über Servlet?

WBOY
WBOYnach vorne
2023-05-02 17:34:131153Durchsuche

Verwenden Sie Servlet, um die Sitzung zu steuern.

Die Aufrechterhaltung des Sitzungsstatus ist ein Problem, mit dem Sie sich bei der Entwicklung von Webanwendungen befassen müssen. Es gibt viele Möglichkeiten, dieses Problem zu lösen, z. B. die Verwendung von Cookies, versteckten Formularfeldern oder die direkte Änderung Die Statusinformationen werden der URL usw. hinzugefügt, und das Servlet selbst stellt eine HttpSession-Schnittstelle zur Unterstützung der Aufrechterhaltung des Sitzungsstatus bereit. Hier stellen wir hauptsächlich die Verwaltung des Sitzungsstatus basierend auf dieser Schnittstelle vor.

 Session wurde erfunden, um die Einschränkungen des HTTP-Protokolls zu überwinden. Bitte beachten Sie, wie das HTTP-Protokoll funktioniert: Der Benutzer stellt eine Anfrage und der Server antwortet. Die Verbindung zwischen dem Client und dem Server ist diskret und diskontinuierlich. Das HTTP-Protokoll bietet keine Funktionalität, die es dem Server ermöglicht, Benutzeranfragen zu verfolgen. Nachdem der Server die Antwort auf die Benutzeranfrage abgeschlossen hat, kann der Server keine Verbindung mehr mit dem Browser aufrechterhalten. Auf der Serverseite ist jede Anfrage unabhängig, daher gilt das HTTP-Protokoll als zustandsloses Protokoll. Wenn ein Benutzer zwischen mehreren Homepages wechselt, kann der Server seine Identität nicht kennen. Die Entstehung von Session soll diese Einschränkung ausgleichen. Mithilfe von Session können Sie die Informationen eines Benutzers speichern, wenn dieser zwischen mehreren Homepages wechselt. Dadurch werden viele Dinge, die vorher unmöglich waren, viel einfacher.

  Während des Zeitraums vom Eintreffen eines Besuchers auf einer bestimmten Homepage bis zu seinem Verlassen erhält jeder Besucher eine separate Sitzung.
 Java Servlet definiert eine HttpSession-Schnittstelle, um die Funktion von Session zu implementieren:
  
 (1) Verwenden Sie die getSession-Methode von HttpServletRequest, um die aktuell vorhandene Sitzung abzurufen Erstellen Sie eine neue Sitzung. Sie können auch die Methode getSession(true) verwenden.

  (2) Schreiben Sie die Sitzungsvariable. Sie können die Methode HttpSession.setAttribute(name, value) verwenden, um eine Information in der Sitzung zu speichern. Sie können auch HttpSession.putValue(name, value) verwenden, diese Methode ist jedoch veraltet.

  (3) Lesen Sie die Sitzungsvariable. Mit der Methode HttpSession.getAttribute(name) können Sie den Wert einer Variablen in der Sitzung lesen. Wenn name eine undefinierte Variable ist, wird null zurückgegeben. Es ist zu beachten, dass der aus getAttribute gelesene Variablentyp Object ist und eine erzwungene Typkonvertierung verwendet werden muss, wie zum Beispiel:
  String uid = (String) session.getAttribute("uid");
 Sie können auch HttpSession.getValue( Name), aber auch diese Methode ist veraltet.

   (4) Schließen Sie die Sitzung. Nachdem Sie die Sitzung verwendet haben, können Sie die Sitzung mit der Methode session.invalidate() schließen. Dies ist jedoch nicht unbedingt erforderlich. Weil die Servlet-Engine SESION nach einer gewissen Zeit automatisch schließt.

 Das Folgende ist ein einfaches Beispiel, um die Verwendung von session zu veranschaulichen
  // SessionExample.java
  import java.io.*;
 import java.util.*;
 import javax.servlet.*;
 import javax.servlet. http. *;
  //Importieren Sie die erforderlichen Softwarepakete
 public class SessionExample erweitert HttpServlet
 {
  public void doGet(HttpServletRequest request, HttpServletResponse Response)
  throws IOException, ServletException //Implementieren Sie die doGet-Methode
  {
  response.setContentType(" text/html "); //Setzen Sie den HTTP-Header
   PrintWriter out = Response.getWriter(); //Holen Sie sich die Ausgabe Writer
  HttpSession session = request.getSession(true);
             . //Ge t das Sitzungsobjekt

   //Drucken HTML-Tag

  out. println("");
  out.println("");
  out.println("");
 out.println("");
  out.println("");

  Datum erstellt = new Date( session.getCreationTime());

          //Erhalten Sie die Zeit, zu der das Sitzungsobjekt erstellt wurde
   Datum des Zugriffs = new Date(session.getLastAccessedTime());
          //     out.print ln("ID " + session.getId()+" ");
          //Holen Sie sich die ID der Sitzung und drucken Sie sie aus
   out.println("Created: " + erstellt+" ");
                 out.println(("Erstellt: " + erstellt+" ");
             /// st Zugriff: " + Zugriff+" ");
      //Zeitpunkt des letzten Zugriffs drucken

   session.setAttribute("UID","12345678");
    //Variable UID=12345678 in Sitzung hinzufügen
   session.setAttribute("Name","Tom");
     //Variable Name=Tom in Sitzung hinzufügen


   Enumeration e = session.getAttributeNames();
        //Erhalten Sie das Aufzählungsobjekt des Variablennamens in der Sitzung
   while (e.hasMoreElements()) { //Traverse every. variable
   Str ing // Zuerst den Namen abrufen
   String-Wert = session.getAttribute (name).toString (); //HTML-Markup drucken
  out.println("");
   }
  }
 }



Das obige ist der detaillierte Inhalt vonWie betreibt JAVA Sitzungsvariablen in JSP über Servlet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen