struts2 中 <s:if test 标签中 用session(已保存角色) 如何在jsp中获取, 代码如何写如下写法为何错

struts2 中 <s:if test 标签中 用session(已保存角色) 如何在jsp中获取, 代码如何写如下写法为何错,第1张

<s:if test="'teacher'=='sessiongetAttribute('ROLE')'">

你把这句分开写,试试,先 String role = sessiongetAttribute('ROLE');

然后 再比较,你试试

session即会话,是oracle中的概念,可用如下几个方法

方法一:

1、登录oracle客户端,如plsql(登录用户需要有dba权限)。

2、运行如下语句,显示的就是当前的session id。

SELECT USERENV('SID') FROM DUAL;

方法二:

1、登录oracle客户端,如plsql(登录用户需要有dba权限)。

2、运行如下语句,显示的就是当前的session id。

SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;

在jsp上内置就有session对象,可以直接用。

例如:<%=sessiongetAttribute("hello") %>

非要通过struts2的话,就用

>

用struts标签: <s:property value="#sessionhello" />

用EL表达式:${sessionhello}

用java代码:<%=sessiongetAttribute("hello")%>

如果只是删除,你可以先取得cookie然后取得对应key即可得到sessionid字段。

struts2

中,你可以在action中实现ServeltRequestAware,然后实现setRequest方法,然后就会得到request实例。然后调用request的getCookies方法就可以获得cookie的数组了,然后遍历找到那个sessionid然后删除或者置空就可以。另外,你还可以调用request的getSession方法获得session实例,然后调用

invalidate

方法(忘了是不是这么写了)强制session失效或者sessionsetMaxInactiveInterval(600);设置session的

生存时间

思路是这样的。每个用户登陆成功的时候获取他的sessionId 并且把他的用户名当做key sessionId当做value来存到Application里

(也就是容器里。Application是一个容器共用一个)

具体实现:

import comopensymphonyxwork2ActionContext;

ActionContext ac = ActionContextgetContext();

Map sessionMap = acgetSession();

Map applicationMap = acgetApplication();//struts2 吧application这些对象做了封装 所以你对这个map *** 作也就是对Application *** 作。(如果你不习惯这样做 也可以用原始的方法)

applicationput(你的用户名, sessionId );

并且要在session里存入你的用户名。

sessionMapput("username", 你的用户名 );

---------------------------------------------

如果有账号登录了。先去applicationMap里找一下。看这个账户有没有登陆

String lu = applicationMapget(username);

if(lu == null){

在applicationMap 里存入相应信息。也就是上面的代码

} else{

如果不等于空,就获取自己的sessionId 然后放入application里把之前的登陆的那个session覆盖掉。

applicationput(username, mySessionId );这里的mySessionId 是自己的sessionId

}

这样做了以后 你要修改你的程序,在每次请求的时候都去你的session里找到你的用户名(在登陆的时候已经保存了)

Srtring username = sessionMapget("username")

然后在application里找到

String sessionId = applicationMapget(username );

在从你session里获取mySessionId 和 sessionId 对比。

如果一样 就继续 如果不一样就跳转到登陆页面。

你可以不修改程序。而去写一个Interceptor,在里面拦截每个请求。这样更方便。

PS:上面的代码里用到struts2 封装的一些session。。等

如果用的不习惯 可以换一下,就写成原始获取session的方法也行。

以上就是关于struts2 中 <s:if test 标签中 用session(已保存角色) 如何在jsp中获取, 代码如何写如下写法为何错全部的内容,包括:struts2 中 <s:if test 标签中 用session(已保存角色) 如何在jsp中获取, 代码如何写如下写法为何错、如何获取session中的session id、struts2怎么取session里面的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9647426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存