当前位置 主页 > 网站技术 > 代码类 >

    Java web实现账号单一登录,防止同一账号重复登录(踢人效果)

    栏目:代码类 时间:2019-10-23 18:06

    实现了Java web开发账号单一登录的功能,防止同一账号重复登录,后面登录的踢掉前面登录的,使用过滤器Filter实现的。可以先下载项目下来测试下效果。

    有博客写的是没个一段时间(比如500ms)读取后台的session进行验证,这种方法除了会占用资源,还会出现访问session(请求1)的返回值和自己提交请求(请求2)的返回值发生冲突。比如请求1先提交,此时请求1的返回值还未返回到前端,请求2提交,实际上我们想要的是请求1的返回值先返回,然后再返回请求2的返回值,但是这不是肯定会发生的,ajax的机制所导致的,具体什么原因没查到。总之出现了请求2先返回了返回值,这时候请求1接收到了请求2的返回值,妥妥的前端出现错误,但是后台却是成功的。

    下面进入主题

    工程下载链接:链接: https://pan.baidu.com/s/1Rp09wv7hTJLqx9DiQ_KSeA 提取码: xyym

    其中:jquery-1.11.3.js是网上的工具

    在这里插入图片描述

    建立两个简单的界面

    登录界面:为了简单没有设置密码,直接输入账号点击登录就行

    在这里插入图片描述

    // index.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
     <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" >
     <title>My JSP 'index.jsp' starting page</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0"> 
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <!--
     <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" >
     -->
     </head>
     
     <body>
     <input  name="username" type="text">
     <!-- <a href="singlecount.jsp" rel="external nofollow" target="_self"> -->
     <button  name="btnlogin">登录</button><!-- </a> -->
     
     <!-- 引入jQuery -->
     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
     <script type="text/javascript" src="js/jsSubmit.js"></script>
     </body>
    </html>

    主页面:简单的一个提交按钮

    在这里插入图片描述

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
     <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" >
     <title>My JSP 'SingleCount.jsp' starting page</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0"> 
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <!--
     <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" >
     -->
    
     </head>
     
     <body>
     已登录. <br>
     <button  name="submit">提交</button>
     
     <!-- 引入jQuery -->
     <script type="text/javascript" src="js/jquery-1.11.3.js"></script>
     <script type="text/javascript" src="js/jsSubmit.js"></script>
     </body>
    </html>