准备工具:

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. 操作系统的进程状态变迁图_1.操作系统是干什么的?
  2. python程序实例电话本-Python基于递归实现电话号码映射功能示例
  3. [Diary][pic]毕业聚餐-笑容灿烂
  4. 【PC工具】nodemcu ESP8266常用USB转串口芯片驱动CP210x、CH340G驱动安装有可能遇到的问题及解决办法...
  5. L1-008 求整数段和(解题报告 C语言实现)(11行代码AC~!)
  6. PCA算法中样本方差和协方差的无偏估计与n-1的由来
  7. 【Flink】Flink自定义UDF以及为函数启用别名
  8. 自己编写的仿京东移动端的省市联动选择JQuery插件
  9. java修饰符作用域
  10. 1.thinkphp6配置文件详解
  11. 单片机编程软件很简单(20),快速学会keil单片机编程软件
  12. DVWA搭建中遇到的无法连接数据库问题及处理
  13. 语言学句法分析树形图怎么画_教你如何画语言学树型图
  14. Mac翻译系列软件推荐二:人人译视界 for Mac
  15. 带圈数字字体1-100
  16. 阿里云要引领数据库市场?这话没毛病
  17. 给初学者的RxJava2.0教程(八)
  18. Android Intent Service Usage
  19. EXCEL转换成十六进制加0x补零
  20. the little scheme Y-combinator

热门文章

  1. android studio个性化设置,Android Studio 个性化设置
  2. mysql查询时间格式化_mysql 日期时间查询及其格式化
  3. 大数据项目(四)————用户画像
  4. postgresql系列之:安装postgresql数据库日志解析插件wal2json
  5. 完美解决Failed to determine a suitable driver class的问题
  6. mysql数据库数据存储与磁盘IO
  7. input标签里面type常用属性(注册登录表单常用元素)
  8. 如何在文档中插入excel文档
  9. java版本的八字计算
  10. java字符串末尾有无0_Java中字符串为什么不以\0结尾