Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Struts2会话过期

Struts2会话过期
EN

Stack Overflow用户
提问于 2012-07-19 21:51:26
回答 1查看 3K关注 0票数 1

我在我的应用程序中使用struts2jquery网格插件。我使用拦截器进行会话超时,并在web.xml中配置会话超时,但问题是会话超时之后它将不需要页面(例如login.jsp ),我的struts.xml如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
....

<interceptors>
        <interceptor name="SessionCheckInterceptor" class="com.org.SessionCheckInterceptor" />
        <interceptor-stack name="testSessionValidationStack">
            <interceptor-ref name="SessionCheckInterceptor" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>    
    </interceptors>
...
<action name="mytable" class="com.org.MyTable">
        <interceptor-ref name="testSessionValidationStack"/>    
        <result name="success" type="json"/>            
        <result name="error">messages.jsp</result>
        <result name="sessionexpired">login.jsp</result>
    </action>
...

我可以在调试时进入拦截器类,但它不会将我重定向到登录页面。请有人告诉我我的代码有什么问题吗?

我的拦截方法是..。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public String intercept(ActionInvocation actionInvocation) throws Exception {
    ActionContext context = actionInvocation.getInvocationContext();
    Map<String, Object> sessionMap = context.getSession();
    log.info(" retrived session..." + sessionMap);
    if (sessionMap == null || sessionMap.isEmpty()
            || sessionMap.get("userName") == null) {
        log.info(" session expired...");

        addActionError(actionInvocation,"Session has been expired,please login again.");
        return "sessionexpired";
    }
    String actionResult = actionInvocation.invoke();
    return actionResult;
}
EN

回答 1

Stack Overflow用户

发布于 2012-07-19 23:33:52

检查是否可以修改或修改此post。我认为这和你想做的事情很相似。

如果适合您的需要,可以在jsp中使用建议。它是一个元标记,将其添加到jsp的head标记中。当会话超时时,它将自动转发到sessionexpired.jsp jsp。<meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=sessionexpired.jsp" />

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11573580

复制
相关文章
Session过期,跳出iframe框架页显示会话过期页面
web开发中经常会有这种情况,在一个主页面中包含侧边导航菜单和iframe,点击菜单项,对应页面会在iframe中显示,整个页面不会刷新。但是如果设置了会话Session,在会话过期后再操作会自动redirect重定向到登录页面,经常会出现在session过期后,再点击菜单项,登录页面显示在iframe中而非显示在当前窗口的情况。
ProsperLee
2018/10/24
1.6K0
zookeeper curator处理会话过期session expired
本文介绍在使用curator框架的时候如何handle session expire。 1、什么是zookeeper的会话过期?  一般来说,我们使用zookeeper是集群形式,如下图,client
用户1225216
2018/03/05
4.1K0
zookeeper curator处理会话过期session expired
redis 过期删除策略(redis过期机制)
它会在设置键的过期时间的同时,创建一个定时器, 当键到了过期时间,定时器会立即对键进行删除。 这个策略能够保证过期键的尽快删除,快速释放内存空间。
全栈程序员站长
2022/07/25
2.5K0
redis 过期删除策略(redis过期机制)
RegisterStartupScript 过期
ClientScriptManager.RegisterStartupScript 方法:
全栈程序员站长
2022/09/09
1.1K0
Redis设置过期时间_redis过期时间原理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
4K0
redission设置过期时间_设置redis过期时间
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.8K0
redission设置过期时间_设置redis过期时间
会话劫持
  在现实生活中,比如你去市场买菜,在交完钱后你要求先去干一些别的事情,稍候再来拿菜;如果这个时候某个陌生人要求把菜拿走,卖菜的人会把菜给陌生人吗?!当然,这只是一个比喻,但这恰恰就是会话劫持的喻意。所谓会话,就是两台主机之间的一次通讯。例如你Telnet到某台主机,这就是一次Telnet会话;你浏览某个网站,这就是一次HTTP会话。而会话劫持(Session Hijack),就是结合了嗅探以及欺骗技术在内的攻击手段。例如,在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行简听,甚至可以是代替某一方主机接管会话。
那一叶随风
2018/08/22
2.2K0
会话管理
Http协议是无状态协议,Web服务器没有短期记忆。在有些应用场景(例如:购物车)下,需要跨越多个请求识别同一个客户——客户跟踪,在Web应用中使用Cookie和Session可以做到这一点。
阿杜
2018/08/06
1.5K0
会话管理
ZooKeeper 会话
在 ZooKeeper 中,客户端连接,是指客户端和服务器之间的 TCP 长连接。
happyJared
2019/10/28
1.4K0
会话控制
会话控制 用来保持用户的状态 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案
星哥玩云
2022/09/14
2.1K0
会话控制
会话技术
用户开一个浏览器,点击多个超链接,访问服务器多个web资,到最后关闭浏览器,整个过程称之为一个会话。和打电话一样,电话接收,开始会话,电话 挂断,结束会话
木瓜煲鸡脚
2019/08/22
1.4K0
struts2(一)之初识struts2
前言   我们都知道struts2是一个框架,那什么是框架呢?很多人其实不太明白,其实框架就是一个半成品,别人将一些功能已经写好了,我们只需要拿来用即可,像我们之前   使用的dbutils框架,操作数据,只需要两行代码,不用像一开始一样,老老实实的写一大堆代码,这就是开发框架的意义所在。简化开发(个人对框架认识的理解,其他   还有在框架上加自己的代码这些就不说了,肯定还有别的很多功能,这只是我最好理解的一种方式)。   框架的定义和作用: 把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放
用户1195962
2018/01/18
1.2K0
struts2(一)之初识struts2
Servlet 会话
在网络的七层模型中,会话层位于传输层之上,它定义如何开始、控制和结束一个会话。七层模式目前仅仅处于理论阶段,但是Web中借鉴了其中的一些思路。在Web中浏览器第一次发送请求到服务器开始直到一方断开为止算作一个会话。HTTP协议本身没有状态,那么Web服务如何知道这次请求是否在一个会话中呢?Web提供了Cookie和Session两种技术。
Masimaro
2019/11/04
1K0
vue登录判断token过期_vue token过期处理
检查了所有代码都没有问题,在所有需要token的地方都能拿到正确的token,但是在verify时仍然走的err,打印出的错误为 invalid token
全栈程序员站长
2022/10/01
2.2K0
vue登录判断token过期_vue token过期处理
redis如何设置定时过期_redis 设置过期时间[通俗易懂]
1、设置过期时间功能:即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们 set key 的时候,都可以给一个 expire time,就是过期时间,通过过期时间我们可以指定这个 key 可以存活的时间。
全栈程序员站长
2022/11/09
4.9K0
pycharm许可证过期_当前系统license过期
今天打开PyCharm的时候弹出提示框 Your license has expired,表示证书到期了,无法继续使用软件。之前使用的证书是在学校的时候注册的学生账号,也就是以.edu.cn结尾的账号。现在需要寻找一种新的认证方式。
全栈程序员站长
2022/09/25
4.2K0
Redis 过期策略
我们都知道redis中的key是可以设置过期时间的,那到了过期时间redis是怎么处理这些key的呢? 首先我们先了解下过期时间是如何存储的. 一. key过期时间存储 通过server.h可见,ke
一个架构师
2022/06/20
8700
Redis过期处理
Redis很多时候是被服务器用作缓存,很多缓存都是临时缓存一下,之后可能不会用到。
摸鱼的G
2023/02/22
1.1K0
Redis过期策略
设置key过期时间后,我们不去管他,当需要key时,我们检查其是否过期,如果过期,我们就删除它,反之返回key
utopia
2023/08/23
2210
Struts2第一天Struts2的概述,Struts2的入门,Struts2常见的配置、Struts2的Action的编写
l 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写
AlbertYang
2020/09/08
8390
Struts2第一天Struts2的概述,Struts2的入门,Struts2常见的配置、Struts2的Action的编写

相似问题

struts2会话过期的应用程序范围

14

会话过期

23

会话过期超时

20

Django会话过期

21

自动会话过期

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文