Java 如何确保响应中存在某些http头
我刚到春天,请原谅我的无知 我希望确保我的应用程序的每个响应都包含以下标题:Java 如何确保响应中存在某些http头,java,spring,spring-security,spring-boot,Java,Spring,Spring Security,Spring Boot,我刚到春天,请原谅我的无知 我希望确保我的应用程序的每个响应都包含以下标题: Content-Type → application/json;charset=UTF-8 Date →Tue, 22 Nov 2016 16:30:21 GMT 有没有一种简单的方法可以做到这一点,而我却没有?任何建议或可能的解决方案都会很好。谢谢大家:)我不确定这是否适用于您,因为我无法测试它。我确信你能做到,最简单的方法是: 创建一个spring拦截器并覆盖postHandlemethode 试试这个: 拦截器
Content-Type → application/json;charset=UTF-8
Date →Tue, 22 Nov 2016 16:30:21 GMT
有没有一种简单的方法可以做到这一点,而我却没有?任何建议或可能的解决方案都会很好。谢谢大家:)我不确定这是否适用于您,因为我无法测试它。我确信你能做到,最简单的方法是: 创建一个spring拦截器并覆盖
postHandle
methode
试试这个:
拦截器类别:
包com.mkyong.common.interceptor
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class MyInterceptor extends HandlerInterceptorAdapter{
public void postHandle(
HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView)
throws Exception {
response.setHeader("Content-Type","application/json;charset=UTF-8");
}
}
下面是您可以设置的标题列表,不要忘记将这个类声明为Springbean
<interceptors>
<interceptor>
<mapping path="/**" />
<beans:bean class="package.MyInterceptor"></beans:bean>
</interceptor>
</interceptors>
因此,我通过创建如下自定义过滤器解决了此问题:
@Component
public class ResponseHeaderFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z");
String dateString = simpleDateFormat.format(UnixTime.now() * 1000);
response.setHeader("Date", dateString);
response.setHeader("Content-Type", "application/json;charset=UTF-8");
chain.doFilter(req, resp);
}
@Override
public void destroy() {
}
}
这就给代码库中的另一个自定义过滤器带来了另一个问题。因此,我借助这篇博文解决了这个额外的问题:
. 希望这有助于某人:)对你有帮助吗?是的,我看到了,但这似乎有点过头了,情况也不完全一样。我想确保每个响应上都有这些标题。必须有一个更简单的方法来实现这一点,也许在配置中??您有权访问响应对象吗?是的,am“returning”responseEntity(响应对象,HttpStatus)是的,谢谢,这将是一个很好的解决方案,但似乎不起作用,可能是因为上面提供的链接中的原因。什么链接<代码>[yourcontroller]