java 如何实现同一账户登录验证

Python012

java 如何实现同一账户登录验证,第1张

今天继续讨论?-0-#这个只需要session和application就好了,用户登录时,这样写:User

user

=

dao.login(userName,

password)//

数据库中判断用户名和密码if

(null

!=

user)

{//

表示用户存在

session.setAttribute("user",

user)//

把用户放进session中

application.setAttribute(userName,

session.getId())/*

把用户所在的sessionId放进application中,首先要明白一点,一个session对应一个浏览器,其次要注意一点,userName必须是唯一的*/}当用户访问到其他url的时候,可以在过滤器或你的拦截器中这样写:User

user

=

(User)

session.getAttribute("user")//

从session中取出用户if

(null

==

user)

{//

未登录或者登录已经过期

response.sendRedirect(request.getContextPath())//

跳转到首页或登录页面}String

sessionId

=

(String)

application.getAttribute(user.getUserName())if

(null

==

sessionId

||

!sessionId.equals(session.getId()))

{/*这说明用户已经在其他电脑或其它浏览器登录了,那么之前登录的session就无效了,自动被后面的登录给踢掉*/

response.sendRedirect(request.getContextPath())//

跳转到首页或登录页面}chain.doFilter(request,

response)//

通过验证,放行用户进入目标url这种方式是我的一个前辈想到的,我们公司的所有项目都采纳了这种方式,确保一个账号只能在一个浏览器中使用

1,建一个数据库:是有用户名与密码的。

2,java中,通过建立一个类,比如说:DatabaseConnector,用于与数据库进行连接。

3,类建好后,如果你用的是mysql数据库的话,还需要再java中加载相应的jar包(mysql-connector-java-3.0.jar),其他数据库也需要加载相应的包。

4.用户名与密码,放于数据库中一个表中,当用户登录时,在数据库该表中查找是否有用户名与密码与所给相同的字段。如有,登录成功,跳转到相应页面。如无,登录失败。