100分求救,session的值为null,
我在同一个Action中定义的两个方法,在俄xectute()方法中,
HttpSession hb_session = request.getSession();
hb_session.setAttribute("hb_file", hb_file);
在另一个方法中:
HttpSession hb_session=REQUEST.getSession();
Hashtable[] hb_data = (Hashtable[])hb_session.getAttribute("hb_file");
System.out.println("#######hb_data="+hb_data);
Tomcat中显示:
hb_data=null
什么原因造成的?急等
问题点数:100、回复次数:17Top
1 楼z3h(zhaohonghui)回复于 2004-12-01 22:57:22 得分 5
确定你向session对象中添加的对象hb_file不是null.Top
2 楼fqcheng(绿奥)回复于 2004-12-01 23:01:10 得分 0
确定Top
3 楼grpengwei(宠米)回复于 2004-12-01 23:07:37 得分 15
用这个试试应该可以的
HttpSession hb_session = request.getSession(true);Top
4 楼fqcheng(绿奥)回复于 2004-12-01 23:10:48 得分 0
我开始就是用楼上说的用法,不行我才改为了
HttpSession hb_session = request.getSession();
结果还不行Top
5 楼grpengwei(宠米)回复于 2004-12-01 23:28:40 得分 5
Hashtable[] hb_data = (Hashtable[])hb_session.getAttribute("hb_file");
那就是Hashtable[]的问题了啊
其他地方真看不出来有什么错误~~Top
6 楼dlxu(脱离纯粹Coding阶段)回复于 2004-12-02 00:04:23 得分 5
HashTable做一個數組?沒搞錯吧,第一次看到呢Top
7 楼fqcheng(绿奥)回复于 2004-12-02 00:15:02 得分 0
没搞错,就是做一个数组,并将数组以session形式传递给另一个函数。但我想在另外两个地方获取到,但出粗了。Top
8 楼xintao222()回复于 2004-12-02 05:16:13 得分 10
你用VE做吧,肯定没问题的Top
9 楼bp69(不要偷懒,自强不息)回复于 2004-12-02 08:44:39 得分 10
HttpSession hb_session = httpRequestServlet.getSession();
hb_session.setAttribute("hb_file", hb_file);
(类型)hb_file=(类型)session.getAttribute("hb_file");
看看是否为空Top
10 楼bp69(不要偷懒,自强不息)回复于 2004-12-02 08:45:59 得分 0
HttpSession hb_session = httpServletRequest.getSession();
hb_session.setAttribute("hb_file", hb_file);
(类型)hb_file1=(类型)session.getAttribute("hb_file");
看看是否为空
Top
11 楼yubo1209(稻草人)回复于 2004-12-02 08:58:19 得分 10
你不应该在同一ACTION中,你至少要让它的请求发出去,它才会对SESSION附值啊Top
12 楼yulchina(为啥我的可用分总是那么少?)回复于 2004-12-02 09:13:45 得分 15
HttpSession hb_session = httpServletRequest.getSession();
应该是HttpSession hb_session = HttpServletRequest.getSession();
然后,建议采用HttpSession hb_session = HttpServletRequest.getSession(true);这样就保证了如果没有session存在,那么就创建一个。
还有,如果在同一页面既setAttribute("key",value);又getAttribute("key");这样是不行的,session不是客户端维护的。你至少要通过一次和服务器交互,让服务器知道你对session做了操作才是啊!
建议,每次操作session之前用isNew()判断一下。
Top
13 楼wafeng(彭克)回复于 2004-12-02 09:20:35 得分 5
你调试一下,session不必存取不必在两个页面,cookie才那样Top
14 楼fqcheng(绿奥)回复于 2004-12-02 10:08:39 得分 0
还是不行,我想把同一个变量的值放在同一个session变量的不同字符串变量中,例如:
HttpSession hb_session = request.getSession(true);
hb_session.setAttribute("hb_file", hb_file);
hb_session.setAttribute("hb_display", hb_file);
现在想在使用完第一个“hb_file”后将其失效,而第二个“hb_display”,仍然可以通过使用
session.getAttribute("hb_display")获取到该怎么办?
急急急急啊Top
15 楼cmg7758(~逛逛~)回复于 2004-12-02 10:35:27 得分 10
先传个字符串看看,行就不是方法的问题,别作无用功Top
16 楼fqcheng(绿奥)回复于 2004-12-02 10:41:19 得分 0
现在问题已自行解决,不过有这么多人来提供帮助,高兴,每个参与者都有分。散分。Top
17 楼sunjhgq(小强)回复于 2004-12-02 10:41:26 得分 10
yulchina() 说的有理,学习中Top




