09-12.Cookie记录上次访问的时间、12.记住用户名案例讲解-02取Cookie
10.Cookie存活时间的细节讲解
11.记住用户名案例讲解-01存Cookie
12.记住用户名案例讲解-02取Cookie
login.jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /**1.通过cookie的key来获取值此*/ function getCookieValue(key) { //1.通过js来获取cookies var cookie = document.cookie;//remember=true; username=gyf //2.拆分cookie var cks = cookie.split('; '); for(var i = 0; i<cks.length;i++){ var ck = cks[i];//remember=true 或 username=gyf //3.取name和value var ckArr = ck.split("="); var name = ckArr[0]; var value = ckArr[1]; //4.找到对应的key的 vlaue if(key == name){ return value; } } } window.onload = function(){ var remember = getCookieValue('remember'); if(remember == 'true'){ //1.给记住用户名勾选中 var rememberTag = document.getElementById('remember'); rememberTag.checked = 'checked'; //2.给用户名显示上次登录名字 var username = getCookieValue('username'); var usernameTag = document.getElementById('username'); usernameTag.value = username; } } </script> </head> <body> <form action="/day10-20180321/Lesson11LoginServlet" method="post"> <table border="1"> <tr> <td>用户名:</td> <td><input id="username" type="text" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2"> <input id="remember" type="checkbox" name="remember" value="true">记住用户名 </td> </tr> <tr> <td colspan="2"> <input type="submit" value="登录"> </td> </tr> </table> </form> </body> </html>
Lesson11LoginServlet接口代码:
package com.gyf.web.servlet.lesson11; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Lesson11LoginServlet") public class Lesson11LoginServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setHeader("content-type", "text/html;charset=utf-8"); //1.获取表单请求参数 String username = request.getParameter("username"); String password = request.getParameter("password"); String remember = request.getParameter("remember"); //2.简单判断是否登录成功 boolean success = "gyf".equals(username) && "123".equals(password); if(success){ response.getWriter().write("登录成功"); }else{ response.getWriter().write("登录失败"); } //3.把remember和username存在cookie中 if("true".equals(remember) && success == true){ Cookie ck1 = new Cookie("remember", remember); ck1.setMaxAge(60 * 60);//存活1个小时 response.addCookie(ck1); Cookie ck2 = new Cookie("username", username); ck2.setMaxAge(60 * 60);//存活1个小时 response.addCookie(ck2); }else{ //消除cookie Cookie[] cks = request.getCookies(); if(cks != null){ for(Cookie c : cks){ c.setMaxAge(0);//删除cookie response.addCookie(c); } } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?