添加页眉春控制器(Adding headers to Spring controllers)

2019-09-17 06:01发布

我知道这个问题很相似, 这一个,但我觉得它的不同和具体,足以在这里保证其自身的问题。

我刚刚继承了Java的Web应用程序项目从谁留下没有文档一个唯一的开发商。 它是一种Spring MVC的应用程序有一个基本的包结构如下:

com.ourOrg.app.controllers
    ImageController
    ProgramController
    UserController
com.ourOrg.app.otherPackages

每个Controller类只是带注释一个POJO @Controller@RequestMapping("/blah") 例如:

@Controller
@RequestMapping("/images")
public class ImageController() {
    @RequestMapping(value="/saveImage", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<String> saveImage(@RequestParam(value="imageData", required=true) String imageXML, HttpServletRequest request){
        // This method gets executed whenever the:
        // http://ourSite.com/images/saveImage
        // URL is hit
    }
}

我一直在问下面的HTTP标头添加到Spring配置,使我们禁用浏览器缓存:

附注:无缓存

缓存控制:无缓存

到期日:-1

我挂上面的文章使得它听起来就像我们的控制器应该扩展该WebContentGenerator类。 不幸的是,也有几十个方法的一个巨大的数字控制器,所以重构每一个扩展或继承了一些基本类型是不是一个真正可行的选择(除非其唯一的选择!)。

我也看到了文章,使其听起来像你有春天配置为使用修改响应头AOP拦截器,但现在我真的进入不熟悉的领域。

鉴于我们的Spring MVC,什么(执行不论哪个控制器或方法),对我来说,这三个简单的报头添加到由服务器发回每个响应的最简单方法的建立和实施?

提前致谢!

Answer 1:

希望你使用Spring 3,你可以看一个拦截器,那么你就不必修改所有的控制器的(因为你说你有很多)。 看起来,他们可能已经有了一个实现,你可以只使用。 退房Bozho的回答这个问题如何设置的注释头Spring MVC中3没有缓存



Answer 2:

我意识到这是一个老的文章,但也许​​这将帮助别人。 我使用的弹簧这个例子。 最主要的是使用的参数标注。
@Controller公共类的HelloController {

@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="User-Agent") String userAgent)

    //..
}

}



文章来源: Adding headers to Spring controllers