效果

Servlet

import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*; import java.io.IOException;
import java.util.Date; @WebServlet(name = "Login", value = "/login")
public class ServletLogin extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
HttpSession st =request.getSession();
if(st.getAttribute("LoginTime")==null){
response.getWriter().println("首次登陆");
}else{
response.getWriter().println("上次登陆时间 | "+request.getSession().getAttribute("LoginTime"));
} st.setAttribute("LoginTime", new Date());
st.setMaxInactiveInterval(60*60);
response.getWriter().println("<br/>现在登陆时间 | "+request.getSession().getAttribute("LoginTime"));
}
}
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*; import java.io.IOException;
import java.util.Date; @WebServlet(name = "Login", value = "/login")
public class ServletLogin extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
HttpSession st =request.getSession();//获取Session
if(st.getAttribute("LoginTime")==null){//判断是否有需要的内容
//如果为null,说明是首次访问
response.getWriter().println("首次登陆");
}else{
//如果不为null,说明访问过了
response.getWriter().println("上次登陆时间 | "+request.getSession().getAttribute("LoginTime"));//通过request获取上次访问时间
} st.setAttribute("LoginTime", new Date());//记录这次新的访问时间
st.setMaxInactiveInterval(60*60);//设置Session有效时间 单位为秒
response.getWriter().println("<br/>现在登陆时间 | "+request.getSession().getAttribute("LoginTime"));
}
}

JSP

<%--
Created by IntelliJ IDEA.
User: xrilang
Date: 28/12/2021
Time: 10:43
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/login">go</a>
</body>
</html>

参考

Java设置Session

【javaweb】【Session】记录用户访问时间的更多相关文章

  1. JS+Ajax+Servlet:记录页面访问时间

    1.前端JS记录页面访问时间 1.1JQuery版本: <script type="text/javascript" src="js/jquery.min.js&q ...

  2. spring security实现记录用户登录时间等信息

    目录 spring security实现记录用户登录时间等信息 一.原理分析 二.实现方式 2.1 自定义AuthenticationSuccessHandler实现类 2.2 在spring-sec ...

  3. js记录用户访问页面和停留时间

    1.setInterval setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval(code,millisec[,"lang" ...

  4. JavaWeb案例:上次访问时间 Cookie技术

    package cn.itcast.access; import javax.servlet.ServletException; import javax.servlet.annotation.Web ...

  5. Java 利用监听器来实现记录用户访问网站次数

    假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话 ...

  6. Cookie 记录最后访问时间

    package cn.gs.ly.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.D ...

  7. PPTP-VPN日志功能,记录用户登录时间,流量统计,IP地址等信息

    我们先看两个文件 /etc/ppp/ip-up /etc/ppp/ip-down 这两个文件为shell脚本,当PPTP用户连接或者断开时分别执行这两个文件,并且会带相应的参数 这些参数有 $PEER ...

  8. Cookie之记录用户上次访问时间

    Cookie之记录用户访问时间 需求: 需求: 1:用户访问服务器(Servlet),判断用户是否是第一次访问,如果是第一次访问,则在页面响应内容为:"您好,欢迎您首次访问"; 2 ...

  9. Servlet案例6:显示用户的上次访问时间

    这里是cookie的简单应用 告诉用户您的上次访问时间是:xxxx-xx-xx xx:xx:xx 思路: 第一次访问该网站时候,记录当前访问时间(new Date()) 把当前时间以cookie的形式 ...

  10. Cookie 获取访问时间

    服务器将客户端需要缓存的数据,发送到客户端,客户端保存在本地的这些缓存数据就是Cookie.区别于Session.   获取用户访问时间代码: response.setCharacterEncodin ...

随机推荐

  1. 左值 <->右值

    左值引用指向左值 右值引用指向右值 int a = 5; int &ref_a = a; // 左值引用指向左值,编译通过 int &ref_a = 5; // 左值引用指向了右值,会 ...

  2. Cache和DMA一致性

    DMA应该多多少少知道点吧.DMA(Direct Memory Access)是指在外接可以不用CPU干预,直接把数据传输到内存的技术.这个过程中可以把CPU解放出来,可以很好的提升系统性能.那么DM ...

  3. HTML字体分类

    网页中的将字体分为5大类 1.serif:衬线字体 2.sans-serif:非衬线字体 3.monospace:等宽字体 4.cursive:草书字体 5.fantasy:幻虚字体 <p st ...

  4. Issac_GYM对Go2机器人的仿真心得

    override 覆盖 torques 扭矩 1 args()参数信息等 cd /home/yyds/桌面/Gym2/legged_robot_competition-master/legged_gy ...

  5. Ubuntu中Conda建立环境和删除环境

    网上说的很全面了,这里我把我遇到的一些问题和解决方案罗列出来,以便未来的学习和了解. 博客的好处就体现出来了,下次你再用这个东西,就直接打开你的博客照抄就行了,不用东搜西搜了,及其方便,这种碎片化的东 ...

  6. Python获取jenkins job信息

    pip install Python-jenkins  如果只是想获取到jenkins的全局变量(比如job url),使用jenkins全局变量就能做到. https://www.jb51.net/ ...

  7. TextIn ParseX文档解析SDK工具新增Java版本

    TextIn ParseX通用文档解析是一款大模型友好的解析工具,支持将pdf文档.jpg.img图像等文件快速转换为markdown格式,支持各类表格.公式解析,帮助大语言模型的数据清洗和文档问答任 ...

  8. 树莓派开机自启动热点(使用有线eth0上网,使用wlan0进行热点)

    一.背景内容 其实就是接了一单,有人需要我帮忙配置一下树莓派开机启动热点.这边做个记录,该方式树莓派4B.3B都可以使用. 二.实际操作 1.使用网线连接路由器和树莓派 树莓派的网络接口一共有三个,分 ...

  9. pjsip编译、说明及vs2022使用示例

    环境: window10_x64 & vs2022 pjsip版本: 2.14.1   之前整理过pjsip 2.10的编译及python使用示例: https://www.cnblogs.c ...

  10. uniapp对接个推推送以及模拟器调试

    uniapp 推送需要配置的内容https://ask.dcloud.net.cn/article/35622 推送流程 参考 https://blog.csdn.net/m0_67401660/ar ...