news 2026/9/2 21:50:24

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进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:39:34

2025本科必看8个降AI率工具测评榜单

2025本科必看8个降AI率工具测评榜单 为什么你需要这份2025降AI率工具测评榜单 近年来,随着AI生成内容(AIGC)检测技术的不断升级,高校和科研机构对论文、报告等学术材料的AI识别精度越来越高。许多学生在提交论文时,因A…

作者头像 李华
网站建设 2026/9/2 21:39:36

大模型强化学习算法全解析:从PPO到SAPO的技术演进!

本文面向已了解强化学习中策略梯度(policy gradient)、优势函数(advantage)、重要性采样(importance sampling)等概念的读者,重点对大模型强化学习主流算法做一条线的梳理与比较。 强化学习 (R…

作者头像 李华
网站建设 2026/9/2 15:19:41

【C语言实战经验5】Bug到底怎么产生的?编码小技巧

有时候软件Bug的产生原因可能是由于我们在编写代码时粗心,坏习惯或者缺乏减少Bug产生的编码技巧导致的。今天,作者就分享一些简单的但非常实用的编码小技巧,希望能够为同道的朋友们提供一些编码的参考价值。话不多说,直接进正题。…

作者头像 李华