1、项目中使用html为登录页面,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中并保存密码到cookie,用户再输入验证码调用登录页面的ajax验证验证码,验证后拿到了session——第一次登录成功!
2、关闭浏览器后,在上次保存了cookie的情况下不用输入用户名和密码,使用ajax调用jsp进行验证用户和密码成功后,将用户权限放入session中,用户再输入验证码调用登录页面的ajax验证验证码,验证后却拿不到session了——第二次到第N次都登录失败,删除cookie后关闭浏览器再登录又能成功(一直未找到原因),!
 
 3、——html后缀改为jsp再重复以上操作都能成功了这是什么原因啊!!!!很纠结啊,想不大明白

解决方案 »

  1.   

    听你介绍整个程序设计过程听得我很纠结啊,为啥完全听不懂啊??建议你用Spring Security来解决登录和安全控制等问题吧,记住用户名啥的都自带啊 =_=
      

  2.   

    你不会在html中写了java代码了吧
      

  3.   

    1)关闭浏览器后session就变了。
    2)看服务器端的日志,你的页面session和ajax的session是不是两个session_id。
      

  4.   

    html中使用的ajax访问的jsp,所以服务器会返回一个sessionID存到cookie头里下次提交就会传入这个SessionID
      

  5.   

    有没有遇到过这样将html后缀改完JSP后session就不丢失的情况啊???
      

  6.   

    真不想回答啊。请多多看点基础吧。原因就只有一个,html是静态的。二jsp是动态解释语言。明白了没
      

  7.   

    看样子应该是cookie和session的问题,
    第一次:开始你用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是都能用!!
      

  8.   

    我好想看懂你的意思了如果我没分析错应该是你的cookie有没有设置setMaxAge()这是第一个点
    第二个点是有没有设置cookie的路径setPath("/web应用名称")保证你在访问哪个路径时客户端都会带cookie其实想拿在浏览器关闭的时候当第二次访问时照样拿到上次关闭的浏览器里session也很简单,只需要url重写就ok了URL重写就是在你一次登录成功时获得session.getId()然后放入cookie中,然后把username和password在放入session中,重定向把cookies发到客户端!这样即使你关闭了浏览器也重新打开之后客户端会带着你存入cookies的sessionId()找到内存中sessionId
    这里会有出现一个问题就是Session的有效时间默认30分钟,当然你可以在tomcat中配置!通过sessionId找到上次的Session...打了这么多字好累呀