欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

spring mvc在service层获取request对象

程序员文章站 2022-01-10 19:57:17
...

只知道在用struts2的时候,要在controller层使用request对象,在原有的基础上集成ActionSupport,实现ServletRequestAware最终实现servletRequest的set方法。就可以在action层使用request对象了。


其他的cookie,session,response都可以通过request对象获取到。如果在service层面获取request对象,这个时候使用ServletActionContext就直接可以获取到上下文的request对象

ServletActionContext.getRequest();
//或者使用
ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);


在springmvc中怎么获取呢?springmvc现在被热捧,Struts2频繁的爆出漏洞。在设计上,springmvc更灵活,我在controller中的方法里面想获取什么参数就传入什么参数(当然不是胡乱的传值,请求参数,session,request,response这些是允许的)。


但是相同的问题在service层怎么获取request对象的。一个笨办法是把request对象当做参数一层一层的往下传。但是对方法的可读性,维护性太影响了。再说像我这样的代码强迫症患者怎么办。springmvc也和struts2一样,也可以获取。


1、在web.xml中配置监听器

<listener>
    <listener-class>
        org.springframework.web.context.request.RequestContextListener
    </listener-class>
</listener>


2、在service层通过RequestContextHolder获取

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();


若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力。

想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。

或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。

为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。