java
首先创建简单的登录界面index.jsp,表单提交到对应的Servlet,Action=“loginServlet”
创建工作界面work.jsp,其中只需要提示登录成功即可。
为了实现自动登录功能,在访问登录页面的时候,就需要从Cookie中去取值,看是否有保存用户信息,如果有,则直接跳转到工作界面,如果没有则客户录入登录信息登录。因此在index.jsp中嵌入java代码进行判断。
创建LoginServlet的java类并在web.xml中进行配置,用于控制登录,如果传入的用户登录信息满足条件,则跳转到工作界面,并且在其内部创建Cookie对象,将用户登录信息放入Cookie中,返回给浏览器,如果登录信息不满足条件,则跳转到登录失败页面。
在web.xml中配置Servlet,如下:
编辑完代码后,利用tomcat进行测试,设置的的应用路径为/,即是以http://localhost:8080直接访问到登录页面,不需要添加应用名。此时查看浏览器中的Cookie没有记录。
进行登录操作,由于我的代码中写的判断逻辑是写死的,只能以用户:Tom,密码123456进行登录,在实际应用需将注册用户保存到数据库;登录跳转到工作页面,显示登录成功
查看此时浏览器中的Cookie,用户和密码已经保存到其中了。
在此在浏览其中键入http://localhost:8080访问登录界面,此时不会再到登录界面而是直接到了工作界面提示登录成功。
由于在前面Servlet代码中,设置的cookie.setMaxAge(-1),为永不过期,只要浏览器不关,是一直保持登录状态的,如果设置成cookie.setMaxAge(10),即10s过期,如果为0,则代表直接删除Cookie,不保存。这样通过设置Cookie的过期时间,能够简单的达到自动登录以及过期重登的功能。
由于浏览器可以设置成自动清理Cookie,在测试时需要注意
此代码只是简单的功能实现,实际开发中需要更多控制