Session其实就是一个Map
设置tomcat维护的session的个数:
同时还要设置一个类,可以将一个类添加到sesson中去。
第一步:必须要是配置的方式发布项目
第二步:配置session的保存目录
<ContextdocBase="D:\\programfiles\\eclipse\\wk01\\05123\\WebContent">
<ManagerclassName="org.apache.catalina.session.PersistentManager"
saveOnRestart="true">
<StoreclassName="org.apache.catalina.session.FileStore"
directory="e:/a">[微软用户1] 指定保存目录,
</Store>
</Manager>
</Context>
第三步:配置一个bean实现接口
public class Person implements HttpSessionActivationListener, Serializable{[微软用户1]
private String name;
public Person() {
}
public Person(String nm) {
this.name = nm;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sessionWillPassivate(HttpSessionEventse) {
System.err.println("这个类与Session一块保存到文件中了:" + this.getName());
}
public void sessionDidActivate(HttpSessionEventse) {
System.err.println("这个类与Session一块活了:" + this.getName());
}
}
第四步:显示页面
<body>
05123...<br/>
<%=session.getId()%>
<hr/>
<%
if(session.getAttribute("pp")==null){
Random r = new Random();
int a = r.nextInt(2000);
Person p = new Person("Jack"+a);
session.setAttribute("pp",p);
}
Cookiec = new Cookie("JSESSIONID",session.getId()); //关了浏览器也能找回来,保存Cookie关闭了tomcat也能再启动tomcat后找回session。
c.setPath("/");
c.setMaxAge(60*60);
response.addCookie(c);
%>
<hr/>
${pp.name}
</body>
钝化后的session