1、项目中使用html为登录页面,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中并保存密码到cookie,用户再输入验证码调用登录页面的ajax验证验证码,验证后拿到了session——第一次登录成功!
2、关闭浏览器后,在上次保存了cookie的情况下不用输入用户名和密码,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中,用户再输入验证码调用登录页面的ajax验证验证码,验证后却拿不到session了——第二次到第N次都登录失败,删除cookie后关闭浏览器再登录又能成功(一直未找到原因),!
3、——html后缀改为jsp再重复以上操作都能成功了这是什么原因啊!!!!很纠结啊,想不大明白
2、关闭浏览器后,在上次保存了cookie的情况下不用输入用户名和密码,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中,用户再输入验证码调用登录页面的ajax验证验证码,验证后却拿不到session了——第二次到第N次都登录失败,删除cookie后关闭浏览器再登录又能成功(一直未找到原因),!
3、——html后缀改为jsp再重复以上操作都能成功了这是什么原因啊!!!!很纠结啊,想不大明白
2)看服务器端的日志,你的页面session和ajax的session是不是两个session_id。
第一次:开始你用html时你将用户权限放入session中并保存密码到cookie,这时的cookie就有值了。以后登录也是使用cookie里面的用户名和密码。
第二次:关闭浏览器后,在上次保存了cookie的情况下不用输入用户名和密码,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中,用户再输入验证码调用登录页面的ajax验证验证码,验证后却拿不到session了。 你第二次使用的可能也是第一次的cookie里面的用户名和密码,而不是第二次登录的session。。html根本不可能获取的到session,删除cookie后关闭浏览器再登录又能成功。cookie被删除了之后你重新登录产生了新的cookie所以就成功了!!
第三次:—html后缀改为jsp再重复以上操作都能成功了这是什么原因啊!。。jsp里面能得到session所以你用cookie还是session 都能获取到用户名和密码所以就都成功。其实问题的关键是html能用cookie保存用户名和密码而不能用session。jsp是都能用!!
第二个点是有没有设置cookie的路径setPath("/web应用名称")保证你在访问哪个路径时客户端都会带cookie其实想拿在浏览器关闭的时候当第二次访问时照样拿到上次关闭的浏览器里session也很简单,只需要url重写就ok了URL重写就是在你一次登录成功时获得session.getId()然后放入cookie中,然后把username和password在放入session中,重定向把cookies发到客户端!这样即使你关闭了浏览器也重新打开之后客户端会带着你存入cookies的sessionId()找到内存中sessionId
这里会有出现一个问题就是Session的有效时间默认30分钟,当然你可以在tomcat中配置!通过sessionId找到上次的Session...打了这么多字好累呀