高手指点,web登陆系统的问题,关于request,session

05-12-01 wilson751
我在做一个web登陆系统,表现层用的struts,index页面的左边,是一个类似资源管理器的树状目录。

逻辑是,用户登陆后,在一个Action类中,对其用户类型做判断,例如:是超级用户,还是普通用户,根据此类型,得到相应的树状目录对象,然后,转发到index页。开始,想在这个Action类中,将得到的树状目录对象,保存到request范围。Index页采用了frame形式,这时出现一个问题,无法得到保存在request中的树状目录对象。如果将树状目录对象保存到session中,这个问题可以解决,但是,这样会加重server负担,请问该怎样解决这个问题?

请教大家在实际项目中,怎样解决类似问题啊?

谢谢了先

Kyle_Yin
2005-12-01 09:50
iframe

Kyle_Yin
2005-12-01 13:13
jsp include

tiles

banq
2005-12-01 14:51
这是用户状态问题,目前有几个方式:客户端 httpSession 或数据库。

就这些,你选吧。

wilson751
2005-12-02 08:14
多谢Kyle_Yin 和banq!!!

我去查查资料,回来再请教

Kyle_Yin
2005-12-02 12:03
看题要看仔细,看错题是要给零单的。

人家的问题不是“会话状态”的问题,楼主自己说了数据是“请求”范围的,而不是“会话”范围的,不得已放在“SESSION”里是一个没有办法的办法。

人家的问题是一个“请求”范围的数据如何从 HTML 前端的不同模块读取。FRAME 的麻烦,是不同 FRAME 不在一个“请求”上。

针对这个问题,按照技术适用范围的逐渐缩小,是基于 HTML 的 IFRAME, 基于 JSP 的 INCLUDE,或者基于 STRUTS 的 TILES. 当然还有其他答案,比如用 JSF 控件。

老板给的答案,是“会话”范围的状态如何实现。所答非所问,错读题意。:-)

即使问题问的是“会话”状态,也还有基于 HTML 隐藏 FIELD, 基于 JAVASCRIPT/AJAX 变量,和基于 COOKIES 三个客户端实现答案。

这样做咨询客户要不满意的。

banq
2005-12-02 12:18
我与Yin兄的区别就在于对问题的理解力不同,不是说我比你强,只是角度不一样啊,我们看看它的问题:

"这时出现一个问题,无法得到保存在request中的树状目录对象。如果将树状目录对象保存到session中,这个问题可以解决,但是,这样会加重server负担,请问该怎样解决这个问题?

"

他提出这时出现一个问题:树形目录对象是否能保存到session中?我个人其实是赞成,看看我的树形目录案例,我就是这么做的:

http://www.storecn.com/estore/welcome.jsp

如果他担心server负载,那只能看有无其他选择了:客户端和数据库?所以咨询不只是说的,还要做出来,做过啊。

当然,你提出的解决方案重新架构,不走这个方向,也是可以,我可没有否定你的想法啊,呵呵。

wilson751
2005-12-05 16:58
多谢Kyle_Yin 和banq

我试了一下,用tiles可以解决:在index取不到保存在

request中的list对象的问题。

banq
2005-12-05 20:29
>用户登陆后,在一个Action类中,对其用户类型做判断,例如:是超级用户,还是普通用户,

不能使用一个Action类来解决这类检验过滤,应该使用一个Filter来统一的做。否则你要对所有的入口都要进行类型判断,如果都采取你这样使用一个Action转发,那不累吗?

树形结构还要遍历,你不要session就很难做到,只能使用javascript了。

仅仅个人意见。

wilson751
2005-12-06 18:53
实在佩服banq!!!

我也是刚刚发现,不把树型目录对象放到session中,功能无法实现(最起码现在这样认为)。

用filter检验过滤,是个好主意,我咋就没想到呢,呵呵,

受益非浅,感谢banq!!!

猜你喜欢