关于servlet与service分离,自己在写小项目练习时的困惑

为了解耦,学习到要求 servlet 要与 Service 分离( jsp/servlet 表现层; service 业务逻辑层; Dao 持久化层),但自己在写小项目实践练习时感觉很难受,比如:
用户登录成功之后,应该向 request 域中注入登录成功的 msg,即

request.setAttribute("msg","登录成功");

因为在 jsp 中会有

${requestScope.msg}

可这件事不应该属于业务逻辑吗?而 Service 层中不应该拿到 request 这个东西,只能交给 servlet 去完成吗?
如果说这件事最终影响的是 jsp 层,也就是表示层,所以可以把它交给 servlet 来处理,好吧。那现在我碰上这么一个情况,网站的会员还有不同的权限。登录成功之后我想要把用户的权限信息注入到 session 中

request.getSession.setAttribute("authority","admin");

这该是业务逻辑层的事情了吧?可 Service 层理论上不能接收 request 对象的话应该完成不了这种任务。
而且如果要交给 Servlet 去做的话,相当于 login 方法还要返回一个 User 对象,然后 Servlet 中得到这个 User 对象再获取其 authority 属性值,注入 session 中。。。这个怎么想都觉得是业务逻辑啊!!怎么能让 Servlet 来处理呢!!
就头大,望有前辈能解答一下,谢谢!

绝地无双
浏览 683回答 2
2回答

jeck猫

一直看你在强调业务逻辑,自己怎么方便怎么来才是最重要的,没必要严格遵守那些规范.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java