* 拦截方式配置:资源被访问的方式
* 注解配置:
* 设置dispatcherTypes属性
1. REQUEST:默认值。浏览器直接请求资源
2. FORWARD:转发访问资源
3. INCLUDE:包含访问资源
4. ERROR:错误跳转资源
5. ASYNC:异步访问资源
* web.xml配置
* 设置<dispatcher></dispatcher>标签即可
package com.learn.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
// 浏览器直接请求资源时,该过滤器会被执行。
//@WebFilter(value = "/index.jsp",dispatcherTypes =DispatcherType.REQUEST)
// 只有转发访问index.jsp时,该过滤器才会被执行。
//@WebFilter(value = "/index.jsp",dispatcherTypes =DispatcherType.FORWARD)
// 浏览器直接请求index.jsp或者转发访问的index.jsp。该过滤器才会被执行。
//@WebFilter(value = "/index.jsp",dispatcherTypes ={DispatcherType.FORWARD,DispatcherType.REQUEST})
@WebFilter(value = "/*",dispatcherTypes ={DispatcherType.FORWARD,DispatcherType.REQUEST})
public class FilterDemo5 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
System.out.println("FilterDemo5 执行------------");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("FilterDemo5 回来------------");
}
@Override
public void destroy() {
}
}
package com.learn.web.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/user/updateServlet")
public class ServletDemo2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("updateServlet...");
// 转发到index.jsp
req.getRequestDispatcher("/index.jsp").forward(req,resp);
}
}
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package javax.servlet;
public enum DispatcherType {
FORWARD,
INCLUDE,
REQUEST,
ASYNC,
ERROR;
private DispatcherType() {
}
}