session保存登录状态与cookie保存账号密码
- 1. session维持登录状态
- 1.1 代码实现
- 2. cookie保存账号密码
- 2.1 什么是cookie
- 2.2 cookie记住账号密码
1. session维持登录状态
- 利用session的生命周期实现
1.1 代码实现
- login页面表单部分
<form action="judgeLoginSession" method="post">name: <input type="text" name="name" /> <br/>password:<input type="password" name="pwd" /> <br/><input type="submit" value="提交"/></form>
- index页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript">window.onload = function() {if (${empty name}) {alert("请登录!");location.href = "login.jsp";}};</script></head><body> 欢迎${ name },登录成功!</body>
</html>
- 后台为了简单就不搞数据库了
protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String name = req.getParameter("name");String pwd = req.getParameter("pwd");if ("rye".equals(name) && "123".equals(pwd)) {// 登录成功 session 保存姓名req.getSession().setAttribute("name", name);resp.sendRedirect("index.jsp");} else // 账号密码错误重新登录。resp.sendRedirect("login.jsp");}
- 访问首页,js判断没有登录
- 测试
- 登录成功,跳转首页
- 关闭首页,重新访问,能取到名字,session存在。
2. cookie保存账号密码
2.1 什么是cookie
cookie的基本使用
2.2 cookie记住账号密码
- 登录页面
<form action="testCookie" method="post">name: <input type="text" name="name" value="${ cookie.name.value }"/> <br/>password:<input type="password" name="pwd" value="${ cookie.pwd.value }"/> <br/>记住密码: <input type="checkbox" name="remPwd" value="1"/><input type="submit" value="提交"/></form>
- 后台取到写cookie到客户端
protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String name = req.getParameter("name");String pwd = req.getParameter("pwd");// 标记是否记住密码String remPwd = req.getParameter("remPwd");// 登录成功 if ("rye".equals(name) && "123".equals(pwd)) {if (remPwd != null) { // 记住密码// cookie 保存姓名, 密码Cookie cookie1 = new Cookie("name", name);Cookie cookie2 = new Cookie("pwd", pwd);// cookie存在浏览器一个小时, 保存浏览器的文件下cookie1.setMaxAge(60*60);// 保存cookie到浏览器resp.addCookie(cookie1);resp.addCookie(cookie2);}resp.sendRedirect("MyJsp.jsp");} else // 账号密码错误重新登录。resp.sendRedirect("login.jsp");}
- 测试
- 登录成功,跳转
- 菜鸟f12,cookie如下,服务器的响应如下
我是bitQian,如果你觉得我写得还阔以,点赞,评论,分享三连击。