J'étudie la programmation comme passe-temps. J'ai commencé mes études parce que je voulais créer un site de vente de livres d'occasion, mais pour générer dynamiquement des pages Web et traiter des données sur le serveur, la connaissance de Java Servlet (Java Servlet) est nécessaire. J'ai commencé à étudier à ... (^ _ ^;) Si l'on considère le site de livres d'occasion comme exemple, le concept de session, qui contient les informations que le client a mises dans le panier, n'était pas facile à comprendre, j'ai donc écrit cet article !! ヾ ^ _ ^ ♪
--Session --Mécanisme pour maintenir le statut de chaque utilisateur
--Dans le servlet, manipulez à l'aide de l'interface 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.Obtenir la session
HttpSession session = request.getSession();
//2.Récupérer des objets d'une session
Integer count = (Integer)session.getAttribute("count");
//3.Compteur+1
if(count == null){
count = new Integer(0);
}
count = new Integer(count.intValue() + 1);
//4.Stocker des objets en session
session.setAttribute("count", count);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
//Afficher l'ID de session
out.println("<p>sessionId=" + session.getId());
//Afficher l'ID de session
out.print("<p>count=" + count);
//Afficher le lien vers ce servlet
String linkurl = request.getRequestURI();
out.println("<p><a href=\"" + linkurl + "\">RELOAD</a>");
out.println("</body></html>");
}
}
Passer des données dans la portée de la session Les données enregistrées dans l'étendue de la demande n'ont pas pu être transmises entre les demandes, mais les données enregistrées dans l'étendue de la session peuvent être transmises.
portée de la demande
Un objet valide entre le servlet et la JSP transférée qui s'exécute sur un seul protocole HTTP --Détruire lorsque la demande est traitée --Définir comme attribut HttpServletRequest
portée de la session --Objets valides pour les servlets et les JSP qui s'exécutent dans la même session --Abandonné en fin de session après un certain laps de temps
Définir comme attribut de HttpSession
Méthodes de manipulation d'objets à portée de session
Object getAttribute(java.lang.String name)
Obtient l'objet spécifié par l'argument. Renvoie null s'il n'existe pas.
Étant donné que le type renvoyé est le type Object, il semble qu'il soit souvent utilisé en le castant de manière appropriée.
void setAttribute(java.lang.String name, java.lang.Object value)
Enregistrez l'objet spécifié par la valeur d'argument avec le nom du nom.
void removeAttribute(java.lang.String name)
Supprime l'objet spécifié par le nom de l'argument.
java.util.Enumeration getAttributeNames()
Renvoie une liste de noms enregistrés.
Expiration de la session Si vous ne supprimez pas les données de session, les données inutilisées resteront sur le serveur. Pour contourner ce problème, le serveur d'applications dispose d'un mécanisme pour vérifier le temps écoulé depuis le dernier accès du client et le supprimer.
web.xml
<session-config>
<session-timeout>3</session-timeout>
</session-config>
Recommended Posts