news 2025/12/31 4:03:02

IDEA(2020版)sevlet+cookie实现显示上次访问时间

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IDEA(2020版)sevlet+cookie实现显示上次访问时间

查看全文请点击:https://www.longkui.site/program/java/idea2020sevletcookie/7197/


【任务目标】

当用户访问某些Web应用时,经常会显示出该用户上一次访问时间。例如,QQ登录成功后,会显示上次的登录时间。本案例要求使用Cookie技术显示用户上次访问时间。

1.创建Servlet
右击src,选择New—>Create New Servlet,名字为LastAccessServlet


参考代码如下:

importjava.io.IOException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.*;@WebServlet(name="LastAccessServlet",urlPatterns="/LastAccessServlet")public class LastAccessServlet extends HttpServlet{private static final long serialVersionUID=1L;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException{//指定服务器输出内容的编码方式UTF-8,防止发生乱码 response.setContentType("text/html;charset=utf-8");//获取所有cookie Cookie[]cookies=request.getCookies();//定义flag的boolean变量,用于判断cookies是否为空 booleanflag=false;//遍历cookie数组 if(cookies.length>0&&cookies!=null){for(Cookie cookie:cookies){//获取cookie的名称 Stringname=cookie.getName();//判断名称是否是lastTime if("lastTime".equals(name)){//有该cookie不是第一次访问flag=true;//响应数据 //获取cookie的value时间 Stringvalue=cookie.getValue();System.out.println("解码前:"+value);//URL解码value=URLDecoder.decode(value,"utf-8");System.out.println("解码后:"+value);response.getWriter().write("欢迎回来,您上次访问时间为:"+value);//设置cookie的value //获取当前时间的字符串,重新设置cookie的值,重新发送cookie Datedate=new Date();SimpleDateFormattimesdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Stringstr_time=timesdf.format(date);System.out.println("编码前:"+str_time);//URL编码str_time=URLEncoder.encode(str_time,"utf-8");System.out.println("编码后:"+str_time);cookie.setValue(str_time);//设置cookie存活时间 cookie.setMaxAge(60*60*24*30);//一个月 //加入当前cookie请求时间 response.addCookie(cookie);break;}}//如果cookies中没有时间,也就是没有访问过 if(cookies==null||cookies.length==0||flag==false){//设置cookie的value //获取当前时间的字符串,重新设置cookie的值,重新发送cookie Datedate=new Date();SimpleDateFormatsdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Stringstr_date=sdf.format(date);System.out.println("编码前:"+str_date);//URL编码str_date=URLEncoder.encode(str_date,"utf-8");System.out.println("编码后:"+str_date);Cookiecookie=new Cookie("lastTime",str_date);//设置cookie存活时间 cookie.setMaxAge(60*60*24*30);//一个月 response.addCookie(cookie);response.getWriter().write("您好,欢迎您首次访问");}}}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{this.doPost(request,response);}}

2.实现效果如下
启动tomcat,在浏览器里输入

http://localhost:8080/Servlet01_war_exploded/LastAccessServlet

效果如下:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/29 15:45:34

港大团队提出 DeepCode ,让 Agent 真能“读论文写可运行代码”

港大团队提出 DeepCode ,让 Agent 真能“读论文写可运行代码” 01 论文概述 这篇论文来自香港大学团队(通讯作者:Chao Huang)。论文提出并开源了 DeepCode :一个能“自动写项目”的智能体框架,想解决的不…

作者头像 李华
网站建设 2025/12/29 15:43:19

Ooder A2UI框架开源首发:构建企业级应用的全新选择

Ooder框架开源首发:构建企业级应用的全新选择 🎉 重磅消息!Ooder框架正式开源发布,版本号0.5! 作为一款专注于企业级应用开发的框架,Ooder以其独特的设计理念和强大的功能,为开发者提供了构建复…

作者头像 李华
网站建设 2025/12/29 15:42:52

通过SSH连接远程服务器运行长时间PyTorch任务

通过SSH连接远程服务器运行长时间PyTorch任务 在深度学习项目中,训练一个大型模型动辄需要数小时甚至数天。你是否经历过这样的场景:本地笔记本风扇狂转、温度飙升,结果刚跑完两个epoch,Wi-Fi断了,SSH终端一黑&#xf…

作者头像 李华
网站建设 2025/12/29 15:37:22

CNN手写数字识别项目在PyTorch镜像中的实现步骤

CNN手写数字识别项目在PyTorch镜像中的实现步骤 在深度学习项目中,最让人头疼的往往不是模型设计本身,而是环境配置——CUDA版本不匹配、cuDNN缺失、PyTorch安装失败……这些问题常常让开发者在真正开始训练前就耗尽耐心。尤其对于刚入门的手写数字识别任…

作者头像 李华