Cookie:使用Cookie实现记住用户的账号和密码

- 日理万妓 2023-08-17 16:29 187阅读 0赞

目录:

  1. 练习一:java web(jsp)中使用cookie记住用户的账号和密码
  2. 练习二:java web(jsp+servert)中使用cookie记住用户的账号和密码
    进阶例题:java web中使用cookie记住用户的账号和密码
  3. 练习三:jsp使用cookie实现自动登录(在首次登录之后,将登录信息保存到cookie,再次访问的时候,不将登录信息显示在登录栏中,即登录信息空,但是也可以点击提交,默认从Cookie中获取信息登录,而练习一、练习二是将登录信息显示在登录栏中,然后提交)
  4. 练习四:js实现cookie记住用户的账号和密码(前后端分离实现Cookie,而不是使用jsp)
  5. 练习五:jquery实现cookie记住用户的账号和密码(前后端分离实现Cookie,而不是使用jsp)
  6. 练习六:html+jsp+servlet 使用cookie实现单点登录SSO,模拟https://www.qq.com/记住用户信息。
    同域下的单点登录是巧用了Cookie顶域的特性。
    单点登录(SSO)看这一篇就够了
  7. 域名、顶级域名、一级域名、二级域名。
    一级域名:又称顶级域名,如.com、.net、.top、.org
    二级域名:www.qq.com
    三级域名:.im.qq.com(qq)、.qzone.qq.com(qq空间)、.lol.qq.com(lol)、.mail.qq.com(qq邮箱)….
    简而言之,有多少个点就是几级域名。

#

练习一

首先是登录的页面,当用户首次输入账号和密码登录后,后台设置cookie的值,然后下次登录的时候就不用再次输入账号和密码了。

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70

1.hello.jsp代码:登录页面,如果cookie中有值,则获取Cookie中的值填充到账号、密码所在的输入框。
watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 1

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Insert title here</title>
  5. </head>
  6. <body>
  7. <%
  8. String firstname="";
  9. String password="";
  10. Cookie[] c1=request.getCookies();
  11. if(c1!=null){
  12. for(Cookie c:c1){
  13. String cookiename=c.getName();
  14. if("first".equals(cookiename)){
  15. String val=c.getValue();
  16. firstname=val;
  17. }
  18. if("pass".equals(cookiename)){
  19. String val=c.getValue();
  20. password=val;
  21. }
  22. }
  23. }
  24. %>
  25. <form action="index.jsp">
  26. firstname:<input type="text" name="firstname" value="<%=firstname%>" placeholder="请输入账号"></input></br>
  27. password:<input type="password" name="password" value="<%=password%>" placeholder="请输入密码"></input></br>
  28. <input type="submit" value="提交"></input>
  29. </form>
  30. </body>
  31. </html>

2.index.jsp代码:点击登录后的跳转页面,将账号、密码保存到Cookie中。

  1. <html>
  2. <head>
  3. <title>Hello World</title>
  4. </head>
  5. <body>
  6. Hello World!<br/>
  7. <%
  8. String firstname=request.getParameter("firstname");
  9. String password=request.getParameter("password");
  10. if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
  11. Cookie c1=new Cookie("first",firstname);
  12. Cookie c2=new Cookie("pass",password);
  13. c1.setMaxAge(60*60*24);
  14. c2.setMaxAge(60*60*24);
  15. c1.setPath("/");
  16. c2.setPath("/");
  17. response.addCookie(c1);
  18. response.addCookie(c2);
  19. out.println(firstname+"-"+password);
  20. }else{
  21. response.sendRedirect("hello.jsp");
  22. }
  23. %>
  24. </body>
  25. </html>

3.第一次访问hello.jsp页面,里面是没有值的

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 2

4.输入值并点击提交

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 3

5.登录之后,现在cookie已经写入浏览器中。可以使用调试工具F12可以看到Cookie中保存的值。
watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 4

6.重新启动浏览器,再次访问hello.jsp页面,可以看到已经不用再次输入账号和密码了。
20190928211405355.png

练习二

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 5

原理和练习一相同,只是将Cookie实现部分放在在servlert中

1.hello.jsp相同

2.index.jsp如下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 6

3.HelloCookie.java代码

  1. package test;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.Cookie;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class HelloCookie extends HttpServlet{
  9. public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
  10. String firstname=request.getParameter("firstname");
  11. String password=request.getParameter("password");
  12. if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
  13. Cookie c1=new Cookie("first",firstname);
  14. Cookie c2=new Cookie("pass",password);
  15. c1.setMaxAge(60*60*24);
  16. c2.setMaxAge(60*60*24);
  17. c1.setPath("/");
  18. c2.setPath("/");
  19. response.addCookie(c1);
  20. response.addCookie(c2);
  21. System.out.println(firstname+"-"+password);
  22. //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
  23. request.getRequestDispatcher("index.jsp").forward(request, response);
  24. }else{
  25. response.sendRedirect("hello.jsp");
  26. }
  27. }
  28. }

4.web.xml中添加如下代码

  1. <servlet>
  2. <servlet-name>servlet1</servlet-name>
  3. <servlet-class>test.HelloCookie</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>servlet1</servlet-name>
  7. <url-pattern>/aaa</url-pattern>
  8. </servlet-mapping>

5.运行效果:

20190928213926756.png

6.输入账号密码登录后:

20190928214003345.png

7.退出后重新登录:

2019092821404491.png

练习三

和练习一结构目录相同,但是代码有所改变

hello.jsp

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 7

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Insert title here</title>
  5. </head>
  6. <body>
  7. <form action="index.jsp">
  8. firstname:<input type="text" name="firstname" placeholder="请输入账号"></input></br>
  9. password:<input type="password" name="password" placeholder="请输入密码"></input></br>
  10. <input type="submit" value="提交"></input>
  11. </form>
  12. </body>
  13. </html>

index.jsp

  1. <html>
  2. <head>
  3. <title>Hello World</title>
  4. </head>
  5. <body>
  6. Hello World!<br/>
  7. <%
  8. //第一步:获取登录信息
  9. String firstname=request.getParameter("firstname");
  10. String password=request.getParameter("password");
  11. //第二步:如果登录信息不为空,则将登录信息保存在cookie中
  12. if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
  13. Cookie c1=new Cookie("first",firstname);
  14. Cookie c2=new Cookie("pass",password);
  15. c1.setMaxAge(60*60*24);
  16. c2.setMaxAge(60*60*24);
  17. c1.setPath("/");
  18. c2.setPath("/");
  19. response.addCookie(c1);
  20. response.addCookie(c2);
  21. }else{//第三步:如果登录信息为空,则从cookie中获取上一次的登录信息
  22. Cookie[] c1=request.getCookies();
  23. for(Cookie c:c1){
  24. String cookiename=c.getName();
  25. if("first".equals(cookiename)){
  26. String val=c.getValue();
  27. firstname=val;
  28. }
  29. if("pass".equals(cookiename)){
  30. String val=c.getValue();
  31. password=val;
  32. }
  33. }
  34. }
  35. //第四步:如果登录信息不为空,则跳转到hello.jsp,如果登录信息为空,则返回登录页面
  36. if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
  37. out.println(firstname+"-"+password);
  38. }else{
  39. response.sendRedirect("hello.jsp");
  40. }
  41. %>
  42. </body>
  43. </html>

运行效果:在首次登录之后,再次访问hello.jsp页面,即使登录信息为空,也可使用上一次的登录信息登录成功。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 8

练习四

当首次输入并选择记住密码后,重启浏览器再次访问后,在输入栏会自动显示上次登录的信息

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. <script>
  7. /**用户登录,其中需要判断是否选择记住密码**/
  8. function checkCookie(){
  9. //简单验证一下
  10. var userName = document.getElementById("firstname").value;
  11. if(userName == ''){
  12. alert("请输入用户名。");
  13. return;
  14. }
  15. var userPass = document.getElementById("password").value;
  16. if(userPass == ''){
  17. alert("请输入密码。");
  18. return;
  19. }
  20. var objChk = document.getElementById("chkRememberPass");
  21. if(objChk.checked){
  22. //添加cookie
  23. setCookie("first",userName,7);
  24. setCookie("pass",userPass,7);
  25. alert("记住了你的密码登录。");
  26. }else{
  27. alert("不记密码登录。");
  28. }
  29. }
  30. /**添加设置cookie**/
  31. function setCookie(cname,cvalue,exdays){
  32. var d = new Date();
  33. d.setTime(d.getTime() + (exdays*24*60*60*1000));
  34. var expires = "expires=" + d.toGMTString();
  35. document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  36. }
  37. /**实现功能,保存用户的登录信息到cookie中。当登录页面被打开时,就查询cookie**/
  38. window.onload = function(){
  39. var userNameValue = getCookieValue("first");
  40. var userPassValue = getCookieValue("pass");
  41. //可在console中看到输出的userNameValue+"-"+userPassValue
  42. console.log(userNameValue+"-"+userPassValue);
  43. document.getElementById("firstname").value = userNameValue;
  44. document.getElementById("password").value = userPassValue;
  45. }
  46. /**获取每个输入的值**/
  47. function getCookieValue(cname) {
  48. var name = cname + "=";
  49. var decodedCookie = decodeURIComponent(document.cookie);
  50. var ca = decodedCookie.split(';');
  51. for(var i = 0; i <ca.length; i++) {
  52. var c = ca[i];
  53. while (c.charAt(0) == ' ') {
  54. c = c.substring(1);
  55. }
  56. if (c.indexOf(name) == 0) {
  57. return c.substring(name.length, c.length);
  58. }
  59. }
  60. return "";
  61. }
  62. </Script>
  63. </head>
  64. <body">
  65. <form method="post">
  66. 用户名:<input type="text" id="firstname" name="firstname" " placeholder="请输入账号"></input></br>
  67. 密码:<input type="password" id="password" name="password" placeholder="请输入密码"></input></br>
  68. <span style="font-size:12px; color:blue; vertical-align:middle;">是否记住密码</span>
  69. <input type="checkbox" id="chkRememberPass" name="chkRememberPass" /></br>
  70. <input type="submit" value="提交" onclick="checkCookie()"></input>
  71. <input type="reset" name="reset" value="重置"/>
  72. </form>
  73. </body>
  74. </html>

js cookie详解:https://www.w3school.com.cn/js/js_cookies.asp

#

练习五

项目目录结构

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 9

HelloCookie.java

  1. package test;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.Cookie;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class HelloCookie extends HttpServlet{
  9. public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
  10. String firstname=request.getParameter("firstname");
  11. String password=request.getParameter("password");
  12. if(firstname!=null&&password!=null&&firstname!=""&&password!=""){
  13. Cookie c1=new Cookie("first",firstname);
  14. Cookie c2=new Cookie("pass",password);
  15. c1.setMaxAge(60*60*24);
  16. c2.setMaxAge(60*60*24);
  17. c1.setPath("/");
  18. c2.setPath("/");
  19. response.addCookie(c1);
  20. response.addCookie(c2);
  21. System.out.println(firstname+"-"+password);
  22. //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
  23. request.getRequestDispatcher("index.jsp").forward(request, response);
  24. }else{
  25. response.sendRedirect("hello.jsp");
  26. }
  27. }
  28. }

web.xml

  1. <servlet>
  2. <servlet-name>servlet1</servlet-name>
  3. <servlet-class>test.HelloCookie</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>servlet1</servlet-name>
  7. <url-pattern>/aaa</url-pattern>
  8. </servlet-mapping>

login.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <!-- 引入jquery和cookie -->
  9. <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  10. <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
  11. <script>
  12. $(document).ready(function(){
  13. var firstname=$.cookie("first");
  14. var password=$.cookie("pass");
  15. $("#firstname").val(firstname);
  16. $("#password").val(password);
  17. });
  18. </script>
  19. <form action="aaa">
  20. firstname:<input type="text" id="firstname" name="firstname" " placeholder="请输入账号"></input></br>
  21. password:<input type="password" id="password" name="password" placeholder="请输入密码"></input></br>
  22. <input type="submit" value="提交"></input>
  23. </form>
  24. </body>
  25. </html>

index.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <p>成功啦</p>
  9. </body>
  10. </html>

运行效果:

20190929012556188.png

当输入登录信息并提交后,再次访问login.html时,输入信息栏会自动出现登录信息。

练习六

比如腾讯产品家族:腾讯网(www.qq.com)是一级域名,qq音乐(y.qq.com)、qq空间(qzone.qq.com)、qq邮箱(mail.qq.com)、电脑管家(guanjia.qq.com)、英雄联盟(lol.qq.com)等都是二级域名

项目结构目录

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 10

1.HelloCookie.java

  1. import java.io.IOException;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.http.Cookie;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. public class HelloCookie extends HttpServlet{
  8. public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
  9. String username=request.getParameter("username");
  10. String password=request.getParameter("password");
  11. if(username!=null&&password!=null&&username!=""&&password!=""){
  12. Cookie c1=new Cookie("user",username);
  13. Cookie c2=new Cookie("pass",password);
  14. c1.setMaxAge(60*60*24);
  15. c2.setMaxAge(60*60*24);
  16. c1.setPath("/");
  17. c2.setPath("/");
  18. response.addCookie(c1);
  19. response.addCookie(c2);
  20. System.out.println(username+"-"+password);
  21. System.out.println(request.getServletPath());
  22. System.out.println(request.getContextPath());
  23. System.out.println(request.getRequestURI());
  24. String path=request.getServletPath();
  25. if(path=="/qq") {
  26. System.out.println("准备进入腾讯网主页");
  27. request.setAttribute("name", "这是腾讯网主页");
  28. //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
  29. request.getRequestDispatcher("success.jsp").forward(request, response);
  30. }
  31. if(path=="/lol") {
  32. System.out.println("准备进入lol主页");
  33. request.setAttribute("name", "这是lol主页");
  34. //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
  35. request.getRequestDispatcher("success.jsp").forward(request, response);
  36. }
  37. if(path=="/email") {
  38. System.out.println("准备进入qq邮箱主页");
  39. request.setAttribute("name", "这是email主页");
  40. //只有在服务端跳转,hello.jsp数据才能传递到index.jsp页面,注意request的生命周期
  41. request.getRequestDispatcher("success.jsp").forward(request, response);
  42. }
  43. }else {
  44. response.sendRedirect("index.html");
  45. }
  46. }
  47. }

2.LogoutServlet.java

  1. package test;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.Cookie;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9. public class LogoutServlet extends HttpServlet {
  10. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  11. doGet(request, response);
  12. }
  13. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  14. // 遍历浏览器发送到服务器端的所有Cookie,找到自己设置的Cookie
  15. Cookie[] cookies=request.getCookies();
  16. if(cookies==null) {
  17. response.sendRedirect("index.html");
  18. }else {
  19. for(Cookie c:cookies) {
  20. // 设置Cookie立即失效
  21. c.setMaxAge(0);
  22. /**
  23. * 删除Cookie时,只设置maxAge=0将不能够从浏览器中删除cookie,
  24. * 因为一个Cookie应当属于一个path,所以删除时,Cookie的这个属性也必须设置。
  25. */
  26. c.setPath("/");
  27. response.addCookie(c);
  28. }
  29. }
  30. response.sendRedirect("logOut.jsp");
  31. }
  32. }

3.web.xml添加如下

  1. <!-- qq -->
  2. <servlet>
  3. <servlet-name>servlet1</servlet-name>
  4. <servlet-class>test.HelloCookie</servlet-class>
  5. </servlet>
  6. <servlet-mapping>
  7. <servlet-name>servlet1</servlet-name>
  8. <url-pattern>/qq</url-pattern>
  9. </servlet-mapping>
  10. <!-- lol -->
  11. <servlet>
  12. <servlet-name>servlet2</servlet-name>
  13. <servlet-class>test.HelloCookie</servlet-class>
  14. </servlet>
  15. <servlet-mapping>
  16. <servlet-name>servlet2</servlet-name>
  17. <url-pattern>/lol</url-pattern>
  18. </servlet-mapping>
  19. <!-- email -->
  20. <servlet>
  21. <servlet-name>servlet3</servlet-name>
  22. <servlet-class>test.HelloCookie</servlet-class>
  23. </servlet>
  24. <servlet-mapping>
  25. <servlet-name>servlet3</servlet-name>
  26. <url-pattern>/email</url-pattern>
  27. </servlet-mapping>
  28. <!-- loginOut -->
  29. <servlet>
  30. <servlet-name>servlet4</servlet-name>
  31. <servlet-class>test.LogoutServlet</servlet-class>
  32. </servlet>
  33. <servlet-mapping>
  34. <servlet-name>servlet4</servlet-name>
  35. <url-pattern>/loginOut</url-pattern>
  36. </servlet-mapping>

4.index.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. </head>
  7. <body>
  8. <p>这是腾讯网</p>
  9. <a href="loginQQ.html">登录</a></br>
  10. <a href="loginLOL.html">英雄联盟</a></br>
  11. <a href="loginEmail.html">qq邮箱</a></br>
  12. <p>......</p>
  13. <a href="loginOut">退出</a></br>
  14. </body>
  15. </html>

5.loginQQ.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录QQ</title>
  6. </head>
  7. <body>
  8. <!-- 引入jquery和cookie -->
  9. <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  10. <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
  11. <script>
  12. $(document).ready(function(){
  13. var username=$.cookie("user");
  14. var password=$.cookie("pass");
  15. $("#username").val(username);
  16. $("#password").val(password);
  17. });
  18. </script>
  19. <h3>QQ登录</h3>
  20. <form action="qq" method="post">
  21. <label>用户名:</label><input type="text" id="username" name="username"><br/>
  22. <label>密 码:</label><input type="password" id="password" name="password"><br/>
  23. <input type="submit" value="登录">
  24. </form>
  25. </body>
  26. </html>

6.loginLOL.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录英雄联盟</title>
  6. </head>
  7. <body>
  8. <!-- 引入jquery和cookie -->
  9. <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  10. <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
  11. <script>
  12. $(document).ready(function(){
  13. var username=$.cookie("user");
  14. var password=$.cookie("pass");
  15. $("#username").val(username);
  16. $("#password").val(password);
  17. });
  18. </script>
  19. <h3>英雄联盟登录</h3>
  20. <form action="lol" method="post">
  21. <label>用户名:</label><input type="text" id="username" name="username"><br/>
  22. <label>密 码:</label><input type="password" id="password" name="password"><br/>
  23. <input type="submit" value="登录">
  24. </form>
  25. </body>
  26. </html>

7.loginEmail.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录QQ邮箱</title>
  6. </head>
  7. <body>
  8. <!-- 引入jquery和cookie -->
  9. <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  10. <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
  11. <script>
  12. $(document).ready(function(){
  13. var username=$.cookie("user");
  14. var password=$.cookie("pass");
  15. $("#username").val(username);
  16. $("#password").val(password);
  17. });
  18. </script>
  19. <h3>QQ邮箱登录</h3>
  20. <form action="email" method="post">
  21. <label>用户名:</label><input type="text" id="username" name="username"><br/>
  22. <label>密 码:</label><input type="password" id="password" name="password"><br/>
  23. <input type="submit" value="登录">
  24. </form>
  25. </body>
  26. </html>

8.success.jsp

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
  2. <?xml version="1.0" encoding="UTF-8" ?>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. <SCRIPT type="text/javascript">
  10. alert("登录成功!!!");
  11. </SCRIPT>
  12. <%
  13. out.println(request.getAttribute("name"));
  14. %>
  15. </body>
  16. </html>

9.logOut.jsp

  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
  2. <?xml version="1.0" encoding="UTF-8" ?>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. <SCRIPT type="text/javascript">
  10. alert("退出成功!!!");
  11. </SCRIPT>
  12. <%
  13. Cookie[] cookies=request.getCookies();
  14. if(cookies!=null){
  15. for(Cookie c:cookies){
  16. String name=c.getName();
  17. String value=c.getValue();
  18. out.println(name+"---"+value+";");
  19. }
  20. }
  21. %>
  22. <p>这是退出之后的页面</p>
  23. </body>
  24. </html>

运行效果:访问http://localhost:8080/testCookie/index.html

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 11

因为qq、lol、qq邮箱同属于腾讯产品,所以此项目实现3者只要登录一个,其他两者就可以自动获取账号和密码,实现自动登录功能,并且在点击退出按钮后,可以退出账号,下次登录时,需要重新输入账号和密码。模拟www.qq.com实现记住用户信息。

发表评论

表情:
评论列表 (有 0 条评论,187人围观)

还没有评论,来说两句吧...

相关阅读