2 u014337927 u014337927 于 2015.06.29 11:18 提问

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只能通过存值取值的方式来存取单个值吗。做一个音乐清单,该怎么保存已选择的音乐清单

7个回答

jixinhuluwa
jixinhuluwa   2015.06.29 12:03
已采纳

首先,你的return,要放在存session值之后,不然,没执行session.setAttribute就返回去了。
第二,你完全不必要存isLogin这个值,一般情况下都是将登录的user这个对象存进session,可以判断session中是否有user这个对象来判断用户是否登录。
第三,我觉得你应该将用户选的音乐列表存在数据库中,因为是存在session中,当你退出时,session就没了。你下次登录就相当于没有这个音乐列表了。
如果你非要存在session中,可以new一个list,将音乐列表存在这个list中,然后将这个list 存在session里session.setAttribute("musicList",musicList)

u014337927
u014337927 非常有用,谢谢
2 年多之前 回复
wangbalukun1
wangbalukun1   2015.06.29 12:00

你的思路没问题,将return放到保存信息之后就可以了,还可以创建一个List对列,将所有的登陆用户的信息放到队列中,方便后期查询和业务处理

u014337927
u014337927 非常感谢
2 年多之前 回复
u012216727
u012216727   Ds   Rxr 2015.06.29 12:13

http://blog.chinaunix.net/uid/24343152/cid-148921-list-1.html
http://zhidao.baidu.com/question/303720013064833004
上面两篇文章你可以看看。
想通过username来保存用户名,isLogin保存登录状态,然后下个页面的时候通过判断isLogin是否为true来判读是否登录。
这个其实不用的,你在下个页面时直接判断这个name为username的session是否为空就可以了;

如果回答对你有帮助,请采纳

u014337927
u014337927 非常感谢!
2 年多之前 回复
u010008910
u010008910   2015.06.29 17:20

session值保存在浏览器,用session.setattribute(“name”,value)将用户名放入session中。你说的保存用户登陆状态,建议还是放入application中更合适,比如同一个账号仅限一处登录,就需要知道账号的状态,而使用session是做不到的。

wbshuaiq
wbshuaiq   2015.06.29 11:50

存对象,就像MAP那样存,前台可以链式读取

wbshuaiq
wbshuaiq   2015.06.29 11:51

列表可以遍历读取,很灵活的

dcxy0
dcxy0   Ds   Rxr 2015.06.29 11:59

存的时候你要先判断用户名/密码非空(取的时候同理),音乐单可以存到数据库,或者用List存到session里面(不推荐).

Csdn user default icon
上传中...
上传图片
插入图片