使用Filter实现用户自动登录
——> <—— set-Cookie:name=value,value包含用户信息 | ——> <—— set-Cookie:name=value,value包含用户信息 | Servlet1 | ||
浏览器 | 服务器 | ——> Cookie:name=value,value包含用户信息 | Servlet2 | |
——> Cookie:name=value,value包含用户信息 | ——> Cookie:name=value,value包含用户信息 | Servlet3 |
(1)编写User类
(2)实现登录页面和首页,编写login.jsp页面用于创建一个用户登录的表格,表格来填写用户名和密码,与自动登录时间。
编写index.jsp页面,显示用户登录的超链接或用户登录信息
需要添加JAR包(jstl.jar,standard.jar)
创建Servlet
《1》编写LoginServlet类,处理用户登录请求,正确就发送一个用户自动登录的cookie并跳转首页,否则提示输入用户名或密码错误,并跳转登录页面login.jsp重新登陆
《2》编写LogoutServlet类,注销用户登录信息,首先将Session会话中保存的user对象删除,然后将cookie删除,最后跳转index.jsp
4.创建过滤器
编写AutoLoginFilter类,拦截用户登录的访问请求,并判断请求中是否包含用户自动登录的cookie,包含就获取cookie中的用户名和密码,并验证用户名和密码是否正确,正确就将用户登录信息封装到user对象存入session域中,完成用户自动登录
5.配置映射信息
web.xml文件中,将过滤器<filter-mapping>元素拦截路径设置为“/*”
<filter-name>AutoLoginFilter</filter-name>
<url-pattern>/*</url-pattern>
复制地址栏的到另一个网页
可以看出用户已经注销成功,如果在开启一个新的浏览器窗口出现上面内容