Ich studiere Programmieren als Hobby. Ich habe mit dem Studium begonnen, weil ich eine Website für den Verkauf gebrauchter Bücher erstellen wollte. Um jedoch Webseiten dynamisch zu generieren und Daten auf dem Server zu verarbeiten, sind Kenntnisse in Java Servlet (Java Servlet) erforderlich. Ich habe angefangen zu studieren bei ... (^ _ ^;) Wenn man die Website für gebrauchte Bücher als Beispiel betrachtet, war das Sitzungskonzept, das die Informationen enthält, die der Kunde in den Warenkorb gelegt hat, nicht leicht zu verstehen, deshalb habe ich diesen Artikel geschrieben !! ヾ ^ _ ^ ♪
--Session --Mechanismus zur Aufrechterhaltung des Status jedes Benutzers
javax.servlet.http.HttpSession
CounterServlet.java
package session;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CounterServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
//1.Sitzung abrufen
HttpSession session = request.getSession();
//2.Objekte aus einer Sitzung abrufen
Integer count = (Integer)session.getAttribute("count");
//3.Zähler+1
if(count == null){
count = new Integer(0);
}
count = new Integer(count.intValue() + 1);
//4.Objekte in Sitzung speichern
session.setAttribute("count", count);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
//Sitzungs-ID anzeigen
out.println("<p>sessionId=" + session.getId());
//Sitzungs-ID anzeigen
out.print("<p>count=" + count);
//Link zu diesem Servlet anzeigen
String linkurl = request.getRequestURI();
out.println("<p><a href=\"" + linkurl + "\">RELOAD</a>");
out.println("</body></html>");
}
}
Daten im Sitzungsbereich übergeben Die im Anforderungsbereich registrierten Daten konnten nicht über Anforderungen hinweg weitergegeben werden, die im Sitzungsbereich registrierten Daten können jedoch weitergegeben werden.
Umfang anfordern
Ein Objekt, das zwischen dem Servlet und der weitergeleiteten JSP gültig ist und auf einem einzelnen HTTP-Protokoll ausgeführt wird
Zerstören Sie, wenn die Anfrage bearbeitet wird
Als HttpServletRequest-Attribut festlegen
Sitzungsumfang --Objekte, die für Servlets und JSPs gültig sind, die in derselben Sitzung ausgeführt werden
Am Ende der Sitzung nach einer bestimmten Zeitspanne wieder aufgenommen
Als Attribut von HttpSession festlegen
Methoden zum Bearbeiten von Objekten mit Sitzungsbereich
Object getAttribute(java.lang.String name)
Ruft das durch das Argument angegebene Objekt ab. Gibt null zurück, wenn es nicht existiert.
Da der zurückgegebene Typ der Objekttyp ist, wird er anscheinend häufig verwendet, indem er entsprechend umgewandelt wird.
void setAttribute(java.lang.String name, java.lang.Object value)
Registrieren Sie das durch den Argumentwert angegebene Objekt mit dem Namen name.
void removeAttribute(java.lang.String name)
Löscht das durch den Argumentnamen angegebene Objekt.
java.util.Enumeration getAttributeNames()
Gibt eine Liste der registrierten Namen zurück.
Session-Timeout Wenn Sie die Sitzungsdaten nicht löschen, verbleiben nicht verwendete Daten auf dem Server. Um dieses Problem zu umgehen, verfügt der Anwendungsserver über einen Mechanismus, mit dem die seit dem letzten Zugriff des Clients verstrichene Zeit überprüft und gelöscht werden kann.
web.xml
<session-config>
<session-timeout>3</session-timeout>
</session-config>
Recommended Posts