Java Spring正在覆盖我的标题-为什么?
我正在尝试使用Java Spring正在覆盖我的标题-为什么?,java,spring-mvc,http-headers,Java,Spring Mvc,Http Headers,我正在尝试使用Spring在http响应中启用缓存。下面是我用来创建响应的代码 @Controller @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE) public class MessagesEndpoint { MessagesService messagesService = new MessagesService(); @RequestMapping(value = "/messages/{me
Spring
在http响应中启用缓存。下面是我用来创建响应的代码
@Controller
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public class MessagesEndpoint {
MessagesService messagesService = new MessagesService();
@RequestMapping(value = "/messages/{messagesToken}", method = RequestMethod.GET)
public void getMessages(HttpServletResponse response) throws IOException {
Map<String, String> messages = messagesService.getMessages();
JsonFactory factory = new JsonFactory();
ObjectMapper mapper = new ObjectMapper(factory);
PrintWriter out = response.getWriter();
out.append("var initMessages = ");
out.append(mapper.writeValueAsString(messages));
out.close();
response.setHeader("Pragma", "Public");
response.setHeader("Cache-Control", "max-age=31556926");
}
}
如您所见,缓存是
无缓存
。为什么这些标题会被覆盖?看看你的请求-响应周期是否有一个过滤器或类似的东西。这是Spring MVC,它使用的是一个分派Servlet,而不是请求-响应周期(我想)。伙计,你似乎根本不知道一般的web开发。web应用程序服务器处理HTTP请求并生成HTTP响应,web应用程序将处理这项工作,请注意,Spring MVC(以及几乎任何其他Java web MVC应用程序框架)只会帮助您轻松完成这项工作,仅此而已。再次:检查你的项目中是否有一个过滤器或拦截器正在重写你的响应的标题。是的,我对web开发一无所知。谢谢你的提示。
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie: too long
Host:localhost:8080
Pragma:no-cache
Referer:http://localhost:8080/donations/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36