tomcat 配置问题,自定义 Response Headers

clark_kidd 2018-02-23 01:55:03
我想用 tomcat 做为一个静态页的 web 服务器,所以在 webApp 中放了一些静态页和文件。
问题来了,我可以对 tomcat 进行配置,使浏览器在对静态资源请求时,加入固定的 Response Headers 吗?
还是说,我一定要弄个自定义 filter 才行?
...全文
870 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
40岁就退休 2018-09-12
  • 打赏
  • 举报
回复
引用 4 楼 clark_kidd 的回复:
写了个Filter,导出成 jar 后,放到 tomcat\lib 目录下,然后修改了 tomcat\conf\web.xml,重启tomcat解决了
package cn.common.java.utility;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StaticCacheControl implements Filter {

public void destroy() {}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;

response.setHeader("cache-control", "no-cache");

chain.doFilter(request, response);
}

public void init(FilterConfig filterConfig) throws ServletException {}
}

	<filter>
<filter-name>staticFilter</filter-name>
<filter-class>cn.common.java.utility.StaticCacheControl</filter-class>
</filter>

<filter-mapping>
<filter-name>staticFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>


完美解决,撒分

赞一个
clark_kidd 2018-02-24
  • 打赏
  • 举报
回复
写了个Filter,导出成 jar 后,放到 tomcat\lib 目录下,然后修改了 tomcat\conf\web.xml,重启tomcat解决了
package cn.common.java.utility;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StaticCacheControl implements Filter {

	public void destroy() {}

	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {

		HttpServletRequest request      = (HttpServletRequest)servletRequest;
		HttpServletResponse response    = (HttpServletResponse)servletResponse;   
        
		response.setHeader("cache-control", "no-cache");

		chain.doFilter(request, response);
	}

	public void init(FilterConfig filterConfig) throws ServletException {}
}
	<filter>
		<filter-name>staticFilter</filter-name>
		<filter-class>cn.common.java.utility.StaticCacheControl</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>staticFilter</filter-name>
		<url-pattern>*.js</url-pattern>
	</filter-mapping>
完美解决,撒分
maradona1984 2018-02-23
  • 打赏
  • 举报
回复
纯粹做静态服务器,nginx和apache岂不是更简单,你说的这些功能静态服务器都是支持的
Sunyiban 2018-02-23
  • 打赏
  • 举报
回复
tomcat好像没有这个功能
clark_kidd 2018-02-23
  • 打赏
  • 举报
回复
据我所知,IIS 可以

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧