请问在spring的业务层如何直接访问 session ?

08-03-04 goddie
Spring+Struts+Hib 框架里:

AccountService.java:

void login(HttpServletRequest request, Account account) throws Exception;

为了存储登陆信息到session,只好传一个request到业务层。

Spring业务层能不能直接Ioc一个Session然后直接使用啊。

kusokun
2008-03-05 02:47
在这里的第一篇帖子,第一次就给你了

业务层要一个session具体是干什么用的?储存登录信息??还是得到登录信息,得到的话你在action中得到然后直接丢给service层或者用formbean

我还是没看懂你的问题

你的方法名是login,如果用户注册的话在service层就应该有参数为一个pojo的logo方法,而这个pojo是否合法又要通过service层的其他方法来验证,比如getUserByName,而在更上端的web层又要保证数据的合法性

不知道我回答的好不好,总之第一次是给你了

goddie
2008-03-05 10:54
谢谢楼上 kusokun 第一次@_@
我也是刚使用分层结构不久,不是很清楚存储用户登陆信息放哪一层。Action应该是表示层的,存储登陆信息我觉得应该放在业务层。所以业务层就要session了。不知道我对否

kusokun
2008-03-06 08:21
action很明显是MVC中的C层,也就是控制层

你将一个request丢到模型层来处理,我觉得不是很妥当,你一个人开发体会不到,如果是企业分工开发的话,负责开发和维护M层的程序员是不愿意看到一个方法中包含有HttpServletRequest request,这样的话要在M层通过request再得到一个HttpSession,你不觉得你的程序紧紧的耦合在一起了吗

goddie
2008-03-06 15:04
怎么又来了个控制层..,你这种分层是将Struts细分。
我认为整个Struts都是属于表示层的。

我现在是在业务层操作用户id,然后返回给struts来存入session。这样应该比较解耦了。谢谢楼上。

kusokun
2008-03-06 22:05
我觉得做开发,要么讲究速度,紧紧的耦合在一起

要分层就好好把MVC做出来,strtus中的action我认为肯定是属于控制层的,不过我看你已经心里有底了,可以按照你的想法做。

猜你喜欢