过滤器(filter):就是对请求起到过滤的作用,它在监听器之后,作用在servlet之前,对请求进行过滤。
拦截器(interceptor):就是对请求和返回进行拦截,它作用在servlet的内部,具体来说有三个地方:servlet_1和servlet_2之间,即请求还没有到controller层。servlet_2和servlet_3之间,即请求走出controller层次,还没有到渲染时图层。servlet_3和servlet_4之间,即结束视图渲染,但是还没有到servlet的结束。
它们之间的关系,可以用一张图来表示:
Java Web,是用Java技术来解决相关web互联网领域的技术总和。
web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
Java技术对Web领域的发展注入了强大的动力。
在 Java Web 开发中,你可以使用过滤器 (Filter) 来禁止浏览器缓存页面。这里是基本的实现步骤:
创建一个新的过滤器类,实现 javax.servlet.Filter 接口。这个类应该包含一个实现了 doFilter 方法的代码块,该方法将在过滤器生效时被调用。
在 doFilter 方法中,你可以使用 HttpServletResponse 对象的 setHeader 方法来设置一些响应头信息,以禁止浏览器缓存页面。例如,你可以使用以下代码来设置 "Cache-Control" 响应头:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate")
在你的 Web 应用的部署描述符 (web.xml) 中,使用 <filter>和 <filter-mapping>元素配置过滤器。这样,你就可以在所有请求到达指定的资源之前,先将其过滤一遍。
下面是一个示例过滤器的完整代码,它实现了上述步骤:
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.HttpServletResponse
public class NoCacheFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response
httpResponse.