多语言展示
当前在线:932今日阅读:126今日分享:42

java中利用Cookie做简单的自动登录及登录超时

在java中,Cookie常被用于在客户端计算机保存少量的用户数据;Cookie可以设置过期时间的性质,让我们可以实现自动登录以及登陆时间的限制。
工具/原料

java

方法/步骤
1

首先创建简单的登录界面index.jsp,表单提交到对应的Servlet,Action=“loginServlet”

2

创建工作界面work.jsp,其中只需要提示登录成功即可。

3

为了实现自动登录功能,在访问登录页面的时候,就需要从Cookie中去取值,看是否有保存用户信息,如果有,则直接跳转到工作界面,如果没有则客户录入登录信息登录。因此在index.jsp中嵌入java代码进行判断。

4

创建LoginServlet的java类并在web.xml中进行配置,用于控制登录,如果传入的用户登录信息满足条件,则跳转到工作界面,并且在其内部创建Cookie对象,将用户登录信息放入Cookie中,返回给浏览器,如果登录信息不满足条件,则跳转到登录失败页面。

5

在web.xml中配置Servlet,如下:

6

编辑完代码后,利用tomcat进行测试,设置的的应用路径为/,即是以http://localhost:8080直接访问到登录页面,不需要添加应用名。此时查看浏览器中的Cookie没有记录。

7

进行登录操作,由于我的代码中写的判断逻辑是写死的,只能以用户:Tom,密码123456进行登录,在实际应用需将注册用户保存到数据库;登录跳转到工作页面,显示登录成功

8

查看此时浏览器中的Cookie,用户和密码已经保存到其中了。

9

在此在浏览其中键入http://localhost:8080访问登录界面,此时不会再到登录界面而是直接到了工作界面提示登录成功。

10

由于在前面Servlet代码中,设置的cookie.setMaxAge(-1),为永不过期,只要浏览器不关,是一直保持登录状态的,如果设置成cookie.setMaxAge(10),即10s过期,如果为0,则代表直接删除Cookie,不保存。这样通过设置Cookie的过期时间,能够简单的达到自动登录以及过期重登的功能。

注意事项
1

由于浏览器可以设置成自动清理Cookie,在测试时需要注意

2

此代码只是简单的功能实现,实际开发中需要更多控制

推荐信息