user
=
dao.login(userName,
password)//
(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.用户名与密码,放于数据库中一个表中,当用户登录时,在数据库该表中查找是否有用户名与密码与所给相同的字段。如有,登录成功,跳转到相应页面。如无,登录失败。