准备工具:

IntelliJ IDEA 2019.2.3 x64

apache-tomcat-8.5.15

实现账号踢出功能

解释:账号踢出指一个账号在A处已登录,如果在B处再次登录该账号时,则使得A处的账号自动退出。

login.jsp

Created by IntelliJ IDEA.

User: admin

Date: 2020/11/11

Time: 15:11

To change this template use File | Settings | File Templates.

--%>

登录

7天免登录

index.jsp

欢迎你,${user}

LoginServlet.java

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

@WebServlet("/login")

public class LoginServlet extends HttpServlet {

private Map sessions = new HashMap<>();    //存放所有登录成功的session对象

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String name = req.getParameter("name");

String password = req.getParameter("password");

String check = req.getParameter("check");

if ("root".equals(name) && "root".equals(password)) {

//如果账号已登录,则让前一个账号的session过期

if (sessions.containsKey(name)) {

HttpSession httpSession = sessions.get(name);

httpSession.setMaxInactiveInterval(1);      //让上一次登录的session失效

sessions.remove(httpSession);               //从列表中移除

}

sessions.put(name, req.getSession());       //将当前session加入集合中

req.getSession().setAttribute("user", name);

resp.sendRedirect("index.jsp");

}else {

req.setAttribute("msg", "用户名或密码错误");

req.getRequestDispatcher("login.jsp").forward(req, resp);

}

}

}

代码都有注释的,简单实现一个账号剔除功能,就是让上一个session失效

java 强制下线_JavaWeb之实现账号强制下线功能相关推荐

  1. java web相册_javaWEB实现相册管理的简单功能

    这仅仅只是一个小小的相册管理,主要实现的功能:能够实现对图片的上传,统一浏览,单个下载,单个删除,只能删除自己上传的文件.现在对每个功能进行单个的解释: 图片的上传 图片的上传在之前的文章中写的很清楚 ...

  2. php自动转换和强制转换,Java数据类型转换(自动转换和强制转换)

    数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中"悄然"进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转 ...

  3. 使用socket.io实现强制踢出其他在线账号

    文章目录 使用socket.io实现强制踢出其他在线账号 Node使用`socket.io` Vue使用`vue-socket.io` 参考 使用socket.io实现强制踢出其他在线账号 因为自己学 ...

  4. css input 内容换行显示,CSS - 如何实现强制不换行、自动换行、强制换行 以及 chrom默认焦点 IE下 Input 默认出现叉...

    *:focus {outline: none;} input::-ms-clear {display:none;} 一般的文字截断(适用于内联与块): .text-overflow { display ...

  5. php强制转成字符串,php怎么强制转成字符串

    php强制转成字符串的方法:首先创建一个PHP示例文件:然后定义一个变量:最后通过PHP中的string方法强制转换成字符串即可. 本文操作环境:windows7系统.PHP7.1版,DELL G3电 ...

  6. linux里强制覆盖,Linux cp命令无法强制覆盖

    在Linux系统里面,使用cp可以拷贝文件, 遇到覆盖的文件会提示是否覆盖, 这是出于安全考虑. 但是如果我们明知需要覆盖并且需要拷贝多个文件或目录的时候,只能单条操作,比较麻烦. cp参数 查看cp ...

  7. linux强制关机会出问题吗,强制关机原来危害这么大!以后千万别犯了

    原标题:强制关机原来危害这么大!以后千万别犯了 在大家平常使用电脑的时候总会有一些不好的习惯,接下来我们就说一下在电脑正常运行的情况下强制关机的危害吧 电脑界最不可控的三件事: ①文件未保存突然跳闸停 ...

  8. HTML---- 渐变颜色, P强制不换行、自动换行、强制换行

    IE 浏览器 filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FFFFFF', endColorStr='#3568 ...

  9. html中如何强制图片不换行,css怎么强制div不换行?

    css强制div不换行的方法:1.使用float属性设置div浮动效果来强制div不换行.2.使用display属性设置div显示类型来强制div不换行. css强制div不换行: 1.使用float ...

最新文章

  1. 基于机器学习的临床决策支持
  2. jQuery中$.fn的用法示例介绍
  3. OAF页面查找数据源
  4. linux rcs文件中的ip,linux学习笔记之diff和patch命令
  5. android唯一设备标识、设备号、设备ID的获取方法
  6. java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
  7. 烂泥:【解决】-bash: ftp: command not found
  8. 工作236:点击直接进入
  9. 如何revert一个merged branch上所有的改动
  10. netlink的博客
  11. ViewPager和Tabhost结合,可滑动的tabhost
  12. bootstrap bootstraptable 固定列_初识Bootstrap
  13. 基于MATLAB OCR的发票识别系统
  14. 信息学奥赛一本通:1194:移动路线
  15. Spring Security登录用户数据获取(4)
  16. 中国信通院的星火链主链支持与以太链(测试网)交互
  17. 我跑了香港六家银行,把境外开户的事整明白了
  18. 上帝掷骰子:APP Store是赌场不是金矿
  19. 看Youtube怎么利用深度学习做推荐
  20. AOP相关术语(连接点、切入点、通知、引介、目标对象、织入、代理、切面)

热门文章

  1. 想要做好网赚那么需要具备这些能力!
  2. 可用于SDR的C语言纠错编码通用算法收集(4)-LDPC低密度奇偶校验码
  3. php 手机号 正则表达式
  4. 还我一片澄清天空—浅析网络内容过滤技术(转)
  5. 【数论:组合数学】卢卡斯定理
  6. 计算几何学 | 圆与直线的交点 | Cross Points of a Circle and a Line | C/C++实现
  7. eclipse调试断点变量值的显示
  8. 将小写金额转换为大写金额
  9. 计算机视觉 : 安装cv2第三方库 + 图像的基本操作
  10. **[UE4技巧]** Blender 和 UE4 的建模动画无缝对接(上) — 再也不用满大街找资源啦!