IDEA JeeSite框架httpSession.invalidate()无效问题解决方案
想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录。
本来的思路是在httpSession监听器中进行判断。但是在使用httpSession.invalidate();销毁Session的时候,这一句话会抛出奇怪的异常,怎么都解决不了。
这个时候可以使用一个比较笨的但是有效的一个方法来替代:
httpSession.setMaxInactiveInterval(1);
在代码中设置过期时间为1秒钟
当然这个方法只是耍小聪明,后来发现,我遇到的问题,实际上是JeeSite 框架集成了Shiro 登陆框架,而这个框架,已经默认实现了之前描述的功能,在它自定义的登录登出拦截器中。
<!-- 定义Shiro安全管理配置 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="systemAuthorizingRealm" /> <property name="sessionManager" ref="sessionManager" /> <property name="cacheManager" ref="shiroCacheManager" /> </bean> <!-- 自定义会话管理配置 --> <bean id="sessionManager" class="com.thinkgem.jeesite.common.security.shiro.session.SessionManager"> <property name="sessionDAO" ref="sessionDAO"/> <!-- 会话超时时间,单位:毫秒 --> <property name="globalSessionTimeout" value="${session.sessionTimeout}"/> <!-- 定时清理失效会话, 清理用户直接关闭浏览器造成的孤立会话 --> <property name="sessionValidationInterval" value="${session.sessionTimeoutClean}"/> <property name="sessionValidationSchedulerEnabled" value="true"/> <property name="sessionIdCookie" ref="sessionIdCookie"/> <property name="sessionIdCookieEnabled" value="true"/> </bean>
只需要修改属性文件jeesite.properties 中的属性即可
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
使用idea创建web框架和配置struts的方法详解
如何用idea创建web框架和配置struts 创建好一个project右键project,选择第二项 选中Web Application,然后点击OK 创建文件夹名为lib(用来存放jar包)和classes(用来存放输出文件) 在官网下载struts,把jar放入lib中,然后右键lib,选择 add as library(导入成功) 点击file-project structure-modules-path 把两个路径都改为web文件夹下面的classes(刚创建的) 总结 到此这篇关于使
-
使用IDEA配置Maven搭建开发框架ssm教程
一.配置Maven环境 1.下载Maven 下载链接http://maven.apache.org/download.cgi 2.下载完成解压压缩包并创建本地仓库文件夹 3.打开解压缩文件,配置本地仓库路径 4.配置Maven环境变量 5.在cmd中查看maven是否配置正确 在cmd中输入mvn -v命令查看 二.在IntelliJ IDEA中配置Maven 打开-File-Settings 三.新建maven JAVAWEB项目 1.打开-File-New-Project Next Next
-
重新启动IDEA时maven项目SSM框架文件变色所有@注解失效
重新启动IDEA maven项目SSM框架所有@注解失效,每个文件上都有个小黄圆,而且我发现所有构建项目的maven的jar包都不在了,也就是说此时根本就不是一个maven项目了,这是IDEA的一个很烦人的bug,网上有很多解决的办法,我是这样解决的: Build -> Rebuild Project 将项目进行重构 此时你会发现maven jar包重新导入进来 而文件异常是因为之前的文件标记消失了,重新标记 因为我这是SSM框架所以三个文件夹需要标记 右键各个文件 Mark Directory
-
使用IDEA搭建ssm框架的详细图文教程
ssm(spring springMVC mybatis) 1.创建项目 file->new->project 2.新建的maven项目目录结构 添加ssm需要的文件夹等 如果去掉java文件夹的蓝色标志,会发现这里new时不能创建java类或包 如果main/java前不是蓝色文件夹或test/java前不是绿色文件夹,可以这样添加 3.加入maven依赖 pom.xml <?xml version="1.0" encoding="UTF-8"?
-
idea创建springMVC框架和配置小文件的教程图解
这个框架主要还是思想,之后,,,还是创建项目好了, 1.新建一个项目 新建一个maven,并且选择webapp类型. 2.点击next选项 这里面的两个选项可以随便填,但是Artifactid一般是项目名,第一个可以是自己定义的名称了, 3.继续点next 在这我们可以添加name=archetypeCatalog,internal,可以在创建项目的时候快一点,3.创建好了项目之后就把我创建的一个小案例放上了 1.创建项目的流程01.引入需要的pom文件节点02.web.xml文件中配置核心控制
-
使用idea2017搭建SSM框架(图文步骤)
搭建个SSM框架居然花费了我好长时间!特此记录! 需要准备的环境: idea 2017.1 jdk1.8 Maven 3.3.9 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 注:配置完ide红线报错没关系!可以run! 步骤: 一.首先使用idea新建一个Maven webapp项目 点击Finish,第一次搭建可能会很慢,甚至可能需要VPN才能搭建成功 二.搭建目录结构 我这里列出的是搭建完了之后所有的目录和文件,诸位先把目录文件建起来,然后我在给出文件内容 这里的目
-
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
1 框架组成 Spring SpringMVC MyBatis 2 所需工具 Mysql 8.0.15 数据库管理系统,创建数据库 Tomcat 8.5.51 用于部署web项目 Maven 3.6.1 项目构建.项目依赖管理 lombok 1.18.10(可用可不用工具) 用于类注解创建setter.getter.无参构造.全参构造.toString等函数 注:只导入依赖,不安装插件是不起作用的 3 搭建步骤 3.1 新建一个空Maven项目,填写项目相关信息,完成 3.2 添加we
-
使用IntelliJ IDEA搭建SSM框架的图文教程
1.使用IDEA新建项目 2.选择创建Maven工程 3.填写GroupId和ArtifactId 4.填写项目名称,与上一步的ArtifactId一致即可,然后点Finish 5.刚建好的目录只是一个Maven的目录结构,如下 6.完善目录结构,添加webapp.WEB-INF目录,以及web.xml文件 7.修改IDEA的Maven设置,Maven默认的本地仓库会保存在C盘,为了方便以后使用,尽量修改本地仓库的位置,因为这是框架整合,所以具体的修改方式在这里不多做说明.快捷键ctrl+alt
-
IDEA JeeSite框架httpSession.invalidate()无效问题解决方案
想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录. 本来的思路是在httpSession监听器中进行判断.但是在使用httpSession.invalidate();销毁Session的时候,这一句话会抛出奇怪的异常,怎么都解决不了. 这个时候可以使用一个比较笨的但是有效的一个方法来替代: httpSession.setMaxInactiveInterval(1); 在代码中设置过期时间为1秒钟 当然这个方法只是耍小聪明,后来发现,我遇到的问题,实际上是JeeSite
-
Android中Listview点击item不变颜色及设置listselector 无效的解决方案
这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I
-
详解webpack的proxyTable无效的解决方案
最近遇到这个需要单页访问跨域后台的问题. 可以按照如下设置: proxyTable: { '/list': { target: 'http://api.xxxxxxxx.com', pathRewrite: { '^/list': '/list' } } } 这样我们在写url的时候,只用写成/list/1就可以代表api.xxxxxxxx.com/list/1. 那么又是如何解决跨域问题的呢?其实在上面的'list'的参数里有一个changeOrigin参数,接收一个布尔值,如果设置为true
-
vue修改数据页面无效的解决方案
目录 vue修改数据页面无效 如下案例 有两种解决方案 更改数据后页面不刷新的问题 vue修改数据页面无效 项目开发的过程中,经常会遇到这种情况:为data中的某一个对象添加一个属性. 如下案例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="w
-
spring @Transactional 无效的解决方案
关于@Transactional注解 一般都认为要注意以下三点 1 .在需要事务管理的地方加@Transactional 注解.@Transactional 注解可以被应用于接口定义和接口方法.类定义和类的 public 方法上 . 2 . @Transactional 注解只能应用到 public 可见度的方法上 . 如果你在 protected.private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错, 但是这个被注解的方法将不会展
-
JPA merge联合唯一索引无效问题解决方案
问题 JPA的merge()操作 是合并的意思,就是当保存的实体时,根据主键id划分,如果已存在,那么就是更新操作,如果不存在,就是新增操作 但是这个仅针对 主键id 划分,对联合唯一索引 无效,两次更新同一条语句还是会报错: Request processing failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationExcept
-
mybatis 有时update语句执行无效的解决方案
目录 项目里mybatis有时update语句执行无效 解决办法 执行update语句后,数据没有被更新,也没有报错 问题描述 详细情况 解决办法 项目里mybatis有时update语句执行无效 公司测试人员在测试的时候发现,在积分系统,消费产生了积分,有时候,却不能加到用户累计积分上去. 明明积分流水记录跟用户积分的增加在一个事务当中的.积分流水记录生成成功,偏偏用户积分没有加上去?奇了怪了. 加积分的代码是: tMemberPointMapper.updateByPrimaryKeySel
-
SpringBoot @CompentScan excludeFilters配置无效的解决方案
目录 @CompentScan excludeFilters配置无效 FilterType @ComponentScan excludeFilters 自定义过滤器 一.@ComponentScan的作用 二.定义组件 三.在主程序类中测试 四.@ComponentScan中excludeFilters使用 @CompentScan excludeFilters配置无效 @CompentScan 注解配置需要扫描的包 excludeFilters 是其中一个配置项,用于排除不需要扫描的类 Fil
-
Mybatis-Plus 全局配置无效的解决方案
目录 全局配置无效 Mybatis-plus简单配置及应用 mybatis-plus条件构造 mybatis generator条件构造 全局配置无效 依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <ve
-
IE中getElementsByName()对有些元素无效的解决方案
复制代码 代码如下: document.getElementsByName('someName') 返回一个节点列表(数组) 注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的.只有下面的tag有name属性: A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT t
随机推荐
- vue.js中mint-ui框架的使用方法
- Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
- 浅谈CMD和win powershell的区别
- php preg_filter执行一个正则表达式搜索和替换
- javascript 文档的编码问题解决
- Android仿微信通讯录滑动快速定位功能
- 从底层简析Python程序的执行过程
- 图片批量压缩大小脚本分享
- jquery zTree异步加载简单实例分享
- jquery 关于event.target使用的几点说明介绍
- JS获得浏览器版本和操作系统版本的例子
- 巧妙的化解DDoS分布式拒绝服务攻击
- IE:启动系统的分级审查功能
- 跨站脚本攻击+Cookies欺骗(Discuz篇)
- Android中实现地址栏输入网址能浏览该地址网页源码并操作访问网络
- 在C#中根据HardwareID获取驱动程序信息的实现代码
- JS实现小球的弹性碰撞效果
- JavaScript内存泄漏的处理方式
- Python数据类型之Dict字典实例详解
- nginx 开启 pathinfo的过程详解