问题描述
- ssh中session怎么保存信息和登录状态
-
刚接触,学着做了注册登录,对于后续的实现不明白
1.网站是怎么用session保存用户登录状态的?是不是通过在登录功能中设置一个session保存一个bool变量来保存存储状态?我本来思路如下
public String login(){ List<User>users; users=service.queryUser(this.username, this.password); try { User a=users.get(0); return "success"; session.setAttribute("username", this.username); session.setAttribute("isLogin",true); } catch (Exception e) { return "err"; } }
想通过username来保存用户名,isLogin保存登录状态,然后下个页面的时候通过判断isLogin是否为true来判读是否登录。但是两句话都报错了,想问一下这个记录状态和信息功能该怎么实现。
2.session只能通过存值取值的方式来存取单个值吗。做一个音乐清单,该怎么保存已选择的音乐清单
解决方案
首先,你的return,要放在存session值之后,不然,没执行session.setAttribute就返回去了。
第二,你完全不必要存isLogin这个值,一般情况下都是将登录的user这个对象存进session,可以判断session中是否有user这个对象来判断用户是否登录。
第三,我觉得你应该将用户选的音乐列表存在数据库中,因为是存在session中,当你退出时,session就没了。你下次登录就相当于没有这个音乐列表了。
如果你非要存在session中,可以new一个list,将音乐列表存在这个list中,然后将这个list 存在session里session.setAttribute("musicList",musicList)
解决方案二:
你的思路没问题,将return放到保存信息之后就可以了,还可以创建一个List对列,将所有的登陆用户的信息放到队列中,方便后期查询和业务处理
解决方案三:
http://blog.chinaunix.net/uid/24343152/cid-148921-list-1.html
http://zhidao.baidu.com/question/303720013064833004
上面两篇文章你可以看看。
想通过username来保存用户名,isLogin保存登录状态,然后下个页面的时候通过判断isLogin是否为true来判读是否登录。
这个其实不用的,你在下个页面时直接判断这个name为username的session是否为空就可以了;
如果回答对你有帮助,请采纳
解决方案四:
session值保存在浏览器,用session.setattribute(“name”,value)将用户名放入session中。你说的保存用户登陆状态,建议还是放入application中更合适,比如同一个账号仅限一处登录,就需要知道账号的状态,而使用session是做不到的。
解决方案五:
存对象,就像MAP那样存,前台可以链式读取
解决方案六:
列表可以遍历读取,很灵活的
解决方案七:
存的时候你要先判断用户名/密码非空(取的时候同理),音乐单可以存到数据库,或者用List存到session里面(不推荐).