11赞
513
当前位置:  开发笔记 > 编程语言 > 正文

维和session得不到值啊,你们如何解决的?请大虾说说,在线一直等........

在登录action(我用的是动态actionform)中,将一段字符写入session,想通过他,在其他action中判断其值,来确定该用户的网页是否过期,可是在其他action中,他的值是nul
在登录action(我用的是动态action form)中,将一段字符写入session ,想通过他,在其他action中判断其值,来确定该用户的网页是否过期,可是在其他action中,他的值是null,如何在其他action中得到在某个action中设置的session值?
关键代码如下:
登录action中,DynaActionForm dyform=(DynaActionForm)form;
              String aa=(String)dyform.get("password");
              HttpSession session=request.getSession();
              session("mmk",aa);
在这个action中,可以用String aaaq=(String)session.getAttribute("mmk");
                     System.out.print(aaaq);
看见写入的session值,比如"123"
然而在其他的action中,使用如下代码确得不到该值(该值为null)
                DynaActionForm dyform=(DynaActionForm)form;
                HttpSession session=request.getSession();
       System.out.println(session.getAttribute("mmk"));
为什么?
struts-config.xml中这样写的
其中scrope换成request,结果一样session无效

32 个解决方案

#1


session("mmk",aa);
没有见过这样的写法,应该是session.setAttribute("mmk", aa);
另外看看是不是由于你的容器session失效时间设置的太短了。

#2


session("mmk",aa);
没见过这么写的

#3


session("mmk",aa);
sorry我是这样写的session.setAttribute("mmk", aa);
失效时间设置的是20分钟,
session-config>
20

#4



20

#5


是不是你向session中设置值的action还没有被调用啊

#6


(String)session.getAttribute("mmk")不是得到名为mmk的session的值吗?System.out.println((String)session.getAttribute("mmk"));结果是null啊

#7


告诉我,你获取到的aa是不是空值?

#8


我以上帝的名义告诉你aa不是空值,实际应用中在第一个登录action中aa是ttt123,
而且可以从输出String aaaq=(String)session.getAttribute("mmk");
                     System.out.print(aaaq);
中看见,当时的mmk中值是ttt123

而在另一个跳转页面的action中mmk就是null了,

#9


session变了?
试试第一个Action中get一下sessionId
第二个Action中也get一下sessionId,然后比较一下是否相同

#10


而且我还试过,将mmk改名为其他(怀疑mmk重名,被重写)任意名,结果一样。而且,在登录的action中设置了20多个session,在从登录页面向其他页面(jsp)跳转后,这些session在其他页面里都正常输出了自己的值,可是这些session值在任何其他action中使用上面的方法,读出的值均为null,我估计使用HttpSession session=request.getSession();
       System.out.println(session.getAttribute("mmk"));读session的值时,系统自动生成了一个新空session,名为mmk,值当然为null了,主要怀疑上面部句的容器request使用有误,可是我不知如何写那2句。
我个人认为,session在设置后,只要不退出应用(关闭IE),不重写session,session值应该是全局可用的(各个jsp,action中均可用,并且是不变的,是这样的吗?

#11


我的session值不是从页面传到应用action的,我是在登录action中设置了session值,我其他action中直接访问的,不是将该session值先传到某个页面,再从该页面传到action中的,有这个必要吗?

#12



HttpSession session=request.getSession(false);
试一下

#13


HttpSession session=request.getSession(false);在看看session这里的session的值取到没有!
如果在整个会话周期都需要访问的信息你可以放在session,如果仅仅是页面之间的数据传递没有必要放在session中!

#14


试过了,无效

#15


HttpSession session=request.getSession(false);
if(session==null){
  System.out.println("session lose");
}

试试这个会出现么?

如果出现的话,找一下你有没有地方有代码把session清空或是扔掉了

#16


if(session==null){
  System.out.println("session lose");
}
---------------------------------
无输出,说明session不是空,如何把现在的20多session内容全部输出??????我想看看

#17


session肯定不会为空的,只要与服务器建立了连接,就会有一个会话

#18


我系列字母的问题就是:
如何在其他action中得到在某个action中设置的session值?
比如在A action中设置了session("asd","i am session");
在B  action中如何得到名为asd,内容是i am session的session

#19


sorry 我现在的问题就是:如上

#20


还是认为session变了

你试试打印两个.do的sessionId看看是否相同先

#21


lz
麻烦你不要让大家猜谜好不好
如果是你写的那样,根本就没问题

如果出现这种情况,只能是你别的地方搞错了

#22


mmk 这个session属性有没有在第二个action执行前被remove掉?

建议写一个HttpSessionAttributeListener 监听一下session中属性的add,remove行为

#23


你是不是用了request.sendredirect了?

#24


肯定是request没有作为参数传递给action~

#25


我是这样作的
在登录action中设置2个session ,A100和mmk,在登录通过的界面M中,使用主机 ,在az.jsp中使用<%String bb=(String)session.getAttribute("A100") System.out.println(bb);%>可以得到A100的值,而在界面M中,使用配件在点击《配件》连接时,希望执行一个.do操作,在该操作的响应处理action中,通过判断mmk的值来确定是否过期,可是无论我如何做,A100和mmk在这里使用上面方法得到的值都是空null,不解???

#26


在登录action中设置2个session ,A100和mmk,在登录通过的界面M中,使用主机 ,在az.jsp中使用<%String bb=(String)session.getAttribute("A100") System.out.println(bb);%>可以得到A100的值,而在界面M中,使用配件在点击《配件》连接时,希望执行一个.do操作,在该操作的响应处理action中,通过判断 mmk的值来确定是否过期,可是无论我如何做,A100和mmk在这里使用上面方法得到的值都是空null,
----------------------------------------------------------------------------------
不知道lz在说什么

#27


我说的是在登录成功后,进入的页面中有2个连接1.整机 2.配件,点击"整机"连接进入一个jsp界面,该界面是用登录检验action 产生的session (A100)的值填充的,一切正常,第二个"配件连接"点击后,执行一个ap.do的操作,在ap.do的action中希望得到session(mmk)的值,可是在这个action中,得到的mmk或A100都是空(null),不解,如何在这个action中得到登录action中设置的mmk和A100的值??????

#28


等待答案

#29


试试这个吧
设置
String user = "123";
request.getSession().setAttribute("userName",user);

取得
(String)request.getSession().getAttribute("userName");

#30


遇到了同楼主同样的问题!正在寻求方法!密切关注中!

#31


楼主,你看看是不是有的地方,你习惯性地用ASP的语法来写了。

 HttpSession session=request.getSession();

我怀疑你这个request是不是HttpServletRequest对象,试试改为HttpServletRequest.getSession();



#32


在jsp中,可以直接用request, session对象,但在actionForm或formBean中,是要引用javax.servlet包下的对象的。

推荐阅读
author-avatar
浪子一品香_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有