004.Spring在其他地方获取当前请求对象

    @RequestMapping(value = "info")
    @ResponseBody
    public String getRequestContextInfo() {
        return helloService.getReqInfo();
    }
 public String getReqInfo() {
        //   在service中获取HttpServletRequest
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
        String info = request.getParameter("name");
        return StringUtils.isEmpty(info) ? "Name is Empty." : "Name is " + info;
    }

当请求为http://localhost:8080/info时,返回Name is Empty.
当请求为http://localhost:8080/info?name=zhangsan时,返回Name is zhangsan

需要注意的是,当mvc方法中注入的request类型为MultipartHttpServletRequest类型时,即文件上传时,通过以上方法是获取不到参数值的。需要将request对象转为MultipartHttpServletRequet。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容