java 强制下线_JavaWeb之实现账号强制下线功能
准备工具:
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之实现账号强制下线功能相关推荐
- java web相册_javaWEB实现相册管理的简单功能
这仅仅只是一个小小的相册管理,主要实现的功能:能够实现对图片的上传,统一浏览,单个下载,单个删除,只能删除自己上传的文件.现在对每个功能进行单个的解释: 图片的上传 图片的上传在之前的文章中写的很清楚 ...
- php自动转换和强制转换,Java数据类型转换(自动转换和强制转换)
数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中"悄然"进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转 ...
- 使用socket.io实现强制踢出其他在线账号
文章目录 使用socket.io实现强制踢出其他在线账号 Node使用`socket.io` Vue使用`vue-socket.io` 参考 使用socket.io实现强制踢出其他在线账号 因为自己学 ...
- css input 内容换行显示,CSS - 如何实现强制不换行、自动换行、强制换行 以及 chrom默认焦点 IE下 Input 默认出现叉...
*:focus {outline: none;} input::-ms-clear {display:none;} 一般的文字截断(适用于内联与块): .text-overflow { display ...
- php强制转成字符串,php怎么强制转成字符串
php强制转成字符串的方法:首先创建一个PHP示例文件:然后定义一个变量:最后通过PHP中的string方法强制转换成字符串即可. 本文操作环境:windows7系统.PHP7.1版,DELL G3电 ...
- linux里强制覆盖,Linux cp命令无法强制覆盖
在Linux系统里面,使用cp可以拷贝文件, 遇到覆盖的文件会提示是否覆盖, 这是出于安全考虑. 但是如果我们明知需要覆盖并且需要拷贝多个文件或目录的时候,只能单条操作,比较麻烦. cp参数 查看cp ...
- linux强制关机会出问题吗,强制关机原来危害这么大!以后千万别犯了
原标题:强制关机原来危害这么大!以后千万别犯了 在大家平常使用电脑的时候总会有一些不好的习惯,接下来我们就说一下在电脑正常运行的情况下强制关机的危害吧 电脑界最不可控的三件事: ①文件未保存突然跳闸停 ...
- HTML---- 渐变颜色, P强制不换行、自动换行、强制换行
IE 浏览器 filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FFFFFF', endColorStr='#3568 ...
- html中如何强制图片不换行,css怎么强制div不换行?
css强制div不换行的方法:1.使用float属性设置div浮动效果来强制div不换行.2.使用display属性设置div显示类型来强制div不换行. css强制div不换行: 1.使用float ...
最新文章
- 基于机器学习的临床决策支持
- jQuery中$.fn的用法示例介绍
- OAF页面查找数据源
- linux rcs文件中的ip,linux学习笔记之diff和patch命令
- android唯一设备标识、设备号、设备ID的获取方法
- java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
- 烂泥:【解决】-bash: ftp: command not found
- 工作236:点击直接进入
- 如何revert一个merged branch上所有的改动
- netlink的博客
- ViewPager和Tabhost结合,可滑动的tabhost
- bootstrap bootstraptable 固定列_初识Bootstrap
- 基于MATLAB OCR的发票识别系统
- 信息学奥赛一本通:1194:移动路线
- Spring Security登录用户数据获取(4)
- 中国信通院的星火链主链支持与以太链(测试网)交互
- 我跑了香港六家银行,把境外开户的事整明白了
- 上帝掷骰子:APP Store是赌场不是金矿
- 看Youtube怎么利用深度学习做推荐
- AOP相关术语(连接点、切入点、通知、引介、目标对象、织入、代理、切面)
热门文章
- 想要做好网赚那么需要具备这些能力!
- 可用于SDR的C语言纠错编码通用算法收集(4)-LDPC低密度奇偶校验码
- php 手机号 正则表达式
- 还我一片澄清天空—浅析网络内容过滤技术(转)
- 【数论:组合数学】卢卡斯定理
- 计算几何学 | 圆与直线的交点 | Cross Points of a Circle and a Line | C/C++实现
- eclipse调试断点变量值的显示
- 将小写金额转换为大写金额
- 计算机视觉 : 安装cv2第三方库 + 图像的基本操作
- **[UE4技巧]** Blender 和 UE4 的建模动画无缝对接(上) — 再也不用满大街找资源啦!