Taille d'une session

Contenu du snippet

Donne la taille d'une session, ceci est à utiliser dans le cas de debugage ou de problèmes connexes avec les sessions J2EE.

Source / Exemple :


<%@ page contentType = "text/html;" 
import="java.sql.* , java.util.*, java.util.Date, java.io.*, java.net.*, java.lang.*" %>

<%
if(request.getParameter("purge_session") != null){
	session.invalidate();
	request.getSession(true);
}
%>

<%!
public static int computeObjectSize(Object o){
	ByteArrayOutputStream baOS;
	ObjectOutputStream objOS;
	int size=0;
	try {
		baOS = new ByteArrayOutputStream();
		objOS = new ObjectOutputStream(baOS);
		objOS.writeObject(o);
		baOS.close();
		objOS.close();
		size = baOS.size();		
	} catch (IOException e) {
	} finally{
		baOS=null;
		objOS=null;
	}
	return size;
}

%>

<html>
<head>
<link href="cewolf.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/javascript">
function verif(){
	if(confirm('Voulez invalidée la session ?')){
		document.form[0].submit();	
	}
}
</script>

</head>
<BODY bgcolor="#DDE8F2">
<H1>Session content</H1>
<p>
<table border=1>
<TR>
<td>
Variable de Session
</td>
<td align="center">
Valeurs
</td>
<td width="30">
Size
</td>
</tr>
<%
System.gc();
float taille=0;
Enumeration names = session.getAttributeNames();
while(names.hasMoreElements()){
  String name = (String)names.nextElement();
  
%>
<TR>
<TD>
<% out.write(name); %>
</TD>
<TD>
<% out.println(session.getAttribute(name)); %>
</TD>
<TD>
<%
	taille=taille+computeObjectSize(name);
	if(computeObjectSize(name)>1024){
		out.println(computeObjectSize(name)/1024+" ko");
	}
	else {
		out.println(computeObjectSize(name)+" o");
	}
%>
</TD>
</TR>
<%
}
%>
</TABLE>

<table>
<tr>
	<td>Taille du cache :</td>
	<td><%
	if(taille>1024){
	 out.println(taille/1024+" ko");
	}
	else
	{
	 out.println(taille+" o");
	}
	 %> </td>
</tr>
</table>

<FORM>
<INPUT TYPE="submit" VALUE="Reload">
<INPUT TYPE="button" onclick="verif()" VALUE="Purge Session" NAME="purge_session">
</FORM>

 
</body>
</html>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.