B/S结构的java怎么解决同一用户同时登陆的问题噻?

来源:百度知道 编辑:UC知道 时间:2024/09/20 08:03:29
如题!

另外jsp中怎样禁用本页面(如login.jsp)的“后退”按钮

答得好加分
秒杀用了一分钟:前面一段说的比较有道理,但是还是不能很好的解决问题,后面的同一用户同时登陆的问题不行,那个方法我试过的,当用户A登录后,用户B重开浏览器或者在其他机器上开浏览器进行登录的时候,session是null,所以这个方法是判断不了的

事实上我解决2个问题:一个是同一用户同时登陆的问题;另一个就是就是防止别人“退出登录”回到登陆页面时点浏览器的“后退”按钮回到上一页面

有两种方法,第一就是放在application,每当登陆的时候,检验以下application是否存在这个用户,如果存在就不可以了

第二就创建一张表,只用来检测用户登陆的,当用户登陆的时候,将userid存入这张表中,别人登陆的时候,首先要检测这种表中是否存在这张表,如果存在,则不能登陆,即为重复登陆。
当然退出的时候,需要将这表中的记录删除。

利用js屏蔽工具栏就可以了。具体的代码,你就搜屏蔽网页工具栏的java代码,应该就可以了。

login.jsp,不能后退,你说的是session问题吧,就是后退还会进入系统对吧?
用session就可以了

用户登陆后,将登陆信息如账号、昵称等存入session,并且将一个标识符存入session,比如:session.setAttribute("isLog","yes"); ,然后在login.jsp里判断:String str = session.getAttribute("isLog"); 如果str==null,那么就证明是第一次进入这个页面,允许他登陆;反之如果是倒退回来的用户,则str="yes",那么直接在JSP里做超连接或者内部转发,转回之前的页面就行了。 判断一个用户同事登陆,就在登陆成功后的Servlet或者action中,将用户session加入application,如果别人用同一账号登陆,则事先验证:request.getServletContext().getAttribute("xxx");如果得到的值不为null,则是重复登陆,如果为null,则是第一次登陆,该怎么办就怎么办。