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 ...
最新文章
- 操作系统的进程状态变迁图_1.操作系统是干什么的?
- python程序实例电话本-Python基于递归实现电话号码映射功能示例
- [Diary][pic]毕业聚餐-笑容灿烂
- 【PC工具】nodemcu ESP8266常用USB转串口芯片驱动CP210x、CH340G驱动安装有可能遇到的问题及解决办法...
- L1-008 求整数段和(解题报告 C语言实现)(11行代码AC~!)
- PCA算法中样本方差和协方差的无偏估计与n-1的由来
- 【Flink】Flink自定义UDF以及为函数启用别名
- 自己编写的仿京东移动端的省市联动选择JQuery插件
- java修饰符作用域
- 1.thinkphp6配置文件详解
- 单片机编程软件很简单(20),快速学会keil单片机编程软件
- DVWA搭建中遇到的无法连接数据库问题及处理
- 语言学句法分析树形图怎么画_教你如何画语言学树型图
- Mac翻译系列软件推荐二:人人译视界 for Mac
- 带圈数字字体1-100
- 阿里云要引领数据库市场?这话没毛病
- 给初学者的RxJava2.0教程(八)
- Android Intent Service Usage
- EXCEL转换成十六进制加0x补零
- the little scheme Y-combinator
热门文章
- android studio个性化设置,Android Studio 个性化设置
- mysql查询时间格式化_mysql 日期时间查询及其格式化
- 大数据项目(四)————用户画像
- postgresql系列之:安装postgresql数据库日志解析插件wal2json
- 完美解决Failed to determine a suitable driver class的问题
- mysql数据库数据存储与磁盘IO
- input标签里面type常用属性(注册登录表单常用元素)
- 如何在文档中插入excel文档
- java版本的八字计算
- java字符串末尾有无0_Java中字符串为什么不以\0结尾