L'objet session est utilisé pour enregistrer l'état d'accès de chaque client dans la portée de la session, afin de suivre l'état de fonctionnement de chaque client. Les informations stockées dans la session peuvent obtenir la validité de ces sessions lorsque le navigateur effectue. demandes ultérieures.
Vous pouvez utiliser l'objet session (l'objet intégré de jsp) directement dans la page jsp, ou vous pouvez récupérer l'objet session via pageContext.getSession() ou request.getSession.
session peut enregistrer les informations de l'utilisateur et mettre en œuvre des fonctions telles que des paniers d'achat.
Le protocole HTTP est un protocole sans état. Le client envoie une requête au serveur, puis le serveur renvoie une réponse. Le serveur n'enregistre pas les informations pertinentes de la connexion. la prochaine connexion À ce stade, le serveur n'a plus d'informations de connexion précédente et ne peut pas déterminer que cette connexion a les mêmes informations client que la connexion précédente. Par conséquent, une session doit être utilisée pour enregistrer les informations sur la connexion.
À partir du moment où le client ouvre le navigateur pour se connecter au serveur jusqu'au moment où le client ferme le navigateur et quitte le serveur, cela s'appelle une session. Lorsqu'un client accède au serveur, il peut se connecter à plusieurs reprises à plusieurs pages du serveur, actualiser une page à plusieurs reprises ou soumettre continuellement des informations à une page, etc. Le serveur doit savoir qu'il s'agit du même client via une méthode, puis un session est nécessaire.
1 Lorsqu'un client accède pour la première fois à une page du serveur, le serveur lui attribuera un objet session. l'utilisateur et spécifie une session unique pour cette session, puis envoie l'ID au client et l'écrit dans le cookie, afin que le client et la session du serveur établissent une correspondance individuelle ; # 2. Lorsque le client continue d'accéder à d'autres sessions sur le serveur Lors de l'utilisation de ressources, le serveur n'attribuera plus de nouveaux objets de session au client jusqu'à ce que le navigateur client soit fermé, expire ou que la méthode invalidate () de la session soit appelé pour l'invalider, et la session entre le client et le serveur se termine.
3. Lorsque le client rouvrira le navigateur pour visiter le site Web, le serveur réattribuera un objet de session au client et réattribuera l'ID de session.
session L'objet est principalement utilisé pour les opérations d'attribut et la gestion de session. Les méthodes couramment utilisées sont les suivantes :
2. public Object getAttribute(String name)
Obtient la valeur de l'attribut avec le nom spécifié dans la portée de la session. n'existe pas, il est renvoyé nul. public void setAttribute(String name,String value)
设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。
2、public Object getAttribute(String name)
在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。
3、public void removeAttribute(String name)
,删除指定名字的session属性,若该属性不存在,则出现异常。
4、public void invalidate()
,使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。
5、public String getId( )
,获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。
6、public void setMaxInactiveInterval(int interval)
设置会话的最大持续时间,单位是秒,负数表明会话永不失效。
7、public int getMaxInActiveInterval()
public void removeAttribute(String name)
, supprimez l'attribut de session avec le nom spécifié. Si l'attribut n'existe pas, une exception se produira. 4. public void invalidate()
, invalide la session. La session en cours peut être invalidée immédiatement et tous les objets stockés dans la session d'origine ne sont plus accessibles. 5. public String getId( )
, récupère l'ID de session actuelle. Chaque session possède un identifiant unique sessionID côté serveur. La seule donnée envoyée par l'objet de session au navigateur est le sessionID, qui est généralement stocké dans un cookie. 6. public void setMaxInactiveInterval(int interval)
Définissez la durée maximale de la session en secondes. Un nombre négatif indique que la session n'expirera jamais. 7. public int getMaxInActiveInterval()
, récupère la durée maximale de la session. 8. Utilisez les méthodes getCreationTime() et getLastAccessedTime() de l'objet session pour obtenir l'heure de création de la session et l'heure du dernier accès, mais la valeur de retour est généralement en millisecondes. conversion pour obtenir l’heure et la date spécifiques.
Date creationTime = new Date(session.getCreationTime()); Date accessedTime = new Date(session.getLastAccessedTime());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>" rel="external nofollow" > <title>session对象方法</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" > --> </head> <body> <b> 会话ID:<%=session.getId() %> <br> 是否新会话:<%=session.isNew() %><br> 设置和获取属性对象:用户名 = <%session.setAttribute("用户名","bing"); %> <%=session.getAttribute("用户名") %><br> <% Date creationTime = new Date(session.getCreationTime()); Date accessedTime = new Date(session.getLastAccessedTime()); %> 会话创建时间:<%=creationTime %><br> 上次访问时间:<%=accessedTime %><br> 会话持续时间(s):<%=session.getMaxInactiveInterval() %><br> <%session.setMaxInactiveInterval(12); %> 修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br> <%session.invalidate(); %> </b> </body> </html>
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSession(); Map application = context.getApplication();
ActionContext actionContext = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) actionContext .get(ServletActionContext.HTTP_REQUEST); HttpSession session = request.getSession(); ServletContext context = (ServletContext) actionContext .get(ServletActionContext.SERVLET_CONTEXT);
HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!