u012890095
Nathan-Yang
采纳率33.3%
2017-06-22 07:20 阅读 2.8k

session是在service处理还是在controller处理

如题,session在那一层处理比较好。举登录为例子,当用户登录成功时,将用户信息保存在session中,考虑到这个动作也属于业务逻辑的一部分,把它放在service层操作,没问题。登录完后进入首页,想获取用户的信息,这个时候问题来了,是在controller层直接操作session还是写个service来专门处理session(除了session操作,不需要其他的动作了)。
对于controller,我一直觉得它起的是中转的作用,请求来了,经过controller的中转调用service,service处理完了,controller将结果发给界面。如果在controller层操作session,总感觉不对劲。
同事的观点是,controller是数据准备的作用,准备数据给service,准备数据给view。按照这个想法,在controller层处理session感觉合情合理。
所以,想问问各位大神,controller的定位是怎样的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • q975583865 一点寒芒先至 2017-06-22 07:25

    controller最好不处理业务逻辑,session无所谓在哪里都可以,毕竟如果用了shiro框架之后我就没见过session了哈哈

    点赞 评论 复制链接分享
  • wsllgd631044s 飞不起的鸿鹄 2017-06-22 07:28

    这个保存到session中的动作,就像你举例那样,假如是登录,登录成功之后就把用户信息储存在session里面,那你直接把这个保存到session里面的动作写到用户登录验证通过那点就好了啊,何必纠结那么多

    点赞 评论 复制链接分享
  • bin470398393 Irvin-bin 2017-06-22 07:47

    放在controller层比较方便使用,举个简单例子,比如你用一些框架例如struts2,在使用的时候会在控制层实现sessionAwa...接口,直接使用session,
    说明放在控制层是合理的

    点赞 评论 复制链接分享
  • zhangpan_soft zhangpan_soft 2017-06-22 08:50

    如果一定要分的清清楚楚,那么我问你servlet到底属于c还是view?这个本就没有太过严格的划分,如果一定要分的清清楚楚,那就不要用mvc的设计模式了,可以用mvp或者mvvm,不过现在项目用这两种的很少,

    点赞 评论 复制链接分享
  • zhangpan_soft zhangpan_soft 2017-06-22 08:51

    mvc只是一种设计模式,必要太过于纠结到底谁谁谁一定放哪里

    点赞 评论 复制链接分享

相关推荐