应该是所有的web容器都是这种机制的。为了保证 数据的一致性 。
解决方案 »
- 谁能帮我测试一下java ee。出错时我按钮继续运行,不再提示,结果现在有错误也不提示了。
- java正则表达式
- 有个关于数据库的问题想问一下
- java如何调用sybase里的存储过程。
- 如何同步WEB登录和软件登录?
- jboss3.2.3的配置问题!
- 我是初学者,向大家请教个问题,可能很简单但我不会!!
- 毕业论文是关于Struts的,求教各位高人,写什么东西能上升到一定的理论高度
- ■■高薪诚聘J2EE程序员(5000-10000元)可兼职,限上海,北京,深圳!!!
- 求救!悬赏*100分*作出此题,一定要详细(给出源代码), 一定给分,谢谢!
- J2SDK1.4.2+Apache Tomcat4.06+Oracle9i中的Tomacat的问题特急,请高手来看看,不胜感激~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- jboss部署问题
Tomcat是用cookie实现Session的,但是.Net就不一定这根Session失效好像没有关系把
====================
最反感这样的话
你把session的原理搞明白,就不会问这个问题了、
====================
最反感这样的话
你把session的原理搞明白,就不会问这个问题了、
============================最讨厌这种回答问题的态度,呵呵,你如果了解的话就请赐教,
不了解的话,说这种话也没有任何帮助呀csdn毕竟是国内一个入门级程序员交流的一个论坛,还是太浮躁
就好比你提的这个问题。是关于session的,你首先应该找些session的资料,把session的工作原理搞明白,那样你的问题就自己就明白能不能实现,自己就解决了。而且以后你遇到session方面的东西就都明白了。不要动不动一个小问题,不自己思考学习就来问。就是别人回答了你。你这个小问题明白了。以后的session方面的问题你一样不明白,
再者你的这个问题要说明白,就一定要了解session的运行机制。我最讨厌问个问题没人回答就乱叫
每个人做项目的关注点有很大不同,你可能这次用到Hibernate,要关注技术,
下次也许就要关注分析复杂的业务流程,甚至做BPR,
当然如果你只是个简单的Developer,更需要花时间关注基础的软件工程或者是CMM或者XP类的软件管理我一开始只是简单抱怨一句“难道CSDN就没有知道的了?晕!”,加了一点点个人情绪,仅此而已
相信没有说什么过分的话,可楼上的那位不知道怎么影响到你了,说这么多,加了更多的个人情绪,是否如果我继续下去,这个帖子就会变成互相攻击的垃圾贴?虽然csdn我很少来,但也不希望是这样子的看你已经有了5颗星,应该是CSDN里的老手了,我相信你比我更应该在这个技术论坛里改善论坛风气,帮助别人,对么?
你的愿望是可以达成的。因为tomcat本身就支持这样的功能。它可以在服务关闭时,将当前的session写入到文件或者是数据库中(依据你在server.xml中的配置)。然后在服务重启后,自动将保存的session读取到内存中。
我前端时间也问过同样的问题,结果论坛上的人都说不能实现,最后还是我自己测试成功了。
我最初是在《TOMCAT与JAVA WEB开发技术详解》看到这个部分的,叫做session的持久化。
具体代码如下:(注意,我这里只贴出了持久化到文件的实现方式,持久化到数据库的你可以发信问我,或者买书看看)
<Context path="/helloapp" docBase="helloapp" debug="0"
reloadable="true"><Manager className="org.apache.catalina.session.PersistentManager" >
debug=0;
saveOnRestart="true"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1"
<Store className="org.apache.catalina.session.FileStore" directory="mydir" />
</Manager></Context>maillogin.jsp:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page session="true" %>
<html>
<head>
<title>helloapp</title>
</head><body bgcolor="#FFFFFF" onLoad="document.loginForm.username.focus()"><%
String name="";
if(!session.isNew()){
name=(String)session.getAttribute("username");
if(name==null)name="";
}
%>
<p>欢迎光临邮件系统</p>
<p>Session ID:<%=session.getId()%></p>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<form name="loginForm" method="post" action="mailcheck.jsp">
<tr>
<td width="401"><div align="right">User Name: </div></td>
<td width="399"><input type="text" name="username" value=<%=name%>></td>
</tr>
<tr>
<td width="401"><div align="right">Password: </div></td>
<td width="399"><input type="password" name="password"></td>
</tr>
<tr>
<td width="401"> </td>
<td width="399"><br/><input type="Submit" name="Submit" value="提交"></td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>mailcheck.jsp:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page session="true" %>
<html>
<head>
<title>
checkmail
</title>
</head>
<body><%
String name=null;
name=request.getParameter("username");
if(name!=null)session.setAttribute("username",name);
%><a href="maillogin.jsp">登录</a>
<a href="maillogout.jsp">注销</a>
<p>当前用户为:<%=name%> </P>
<P>你的信箱中有100封邮件</P></body>
</html>
服务启动后,访问http://127.0.0.1:8080/helloapp/maillogin.jsp,输入名字后转到mailcheck.jsp,然后停止服务,此时,在%CATALINA_HOME%/work/catalina/localhost/helloapp/出现了指定的mydir目录,目录下出现存放具体session内容的文件。再次重启服务,从mailcheck.jsp转回maillogin.jsp(点击登录),页面出现通过session保存的姓名。也就是说,session持久化成功
关闭服务和启动服务,一定不能使用windows下的图形界面程序!就是那个config tomcat。我最初就是害在它的手下,始终不能成功。
后来无意间才发现,只有用脚本启动/停止服务,或者通过TOMCAT的WEB管理页面启动/停止服务,才会正常实现session的持久化!