1.Filter ?什么是过滤器
Filter 过滤器它是 JavaWeb 的三大组件之一。
三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器
Filter 过滤器它是 JavaEE 的规范。也就是接口
Filter 过滤器它的作用是:拦截请求,过滤响应。
Filter 的工作流程图:
Filter 过滤器的使用步骤:
1.编写一个类去实现 Filter 接口
2.实现过滤方法 doFilter()
3.到 web.xml 中去配置 Filter 的拦截路径
例如:
拦截跳过登录直接访问
package com.guang.filter;
import com.guang.bean.Goods;
import com.guang.bean.User;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebFilter("/zhuye.jsp")
public class MyFilter implements Filter {
/**
* @param filterConfig
* @throws ServletException
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Filter ....init");
}
/**
* @param servletRequest
* @param servletResponse
* @param filterChain
* @throws IOException
* @throws ServletException
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
User user=null;
System.out.println("filter...执行过滤");
HttpServletRequest request= (HttpServletRequest) servletRequest;
HttpServletResponse response= (HttpServletResponse) servletResponse;
HttpSession session=request.getSession();
user= (User) session.getAttribute("user");
System.out.println(user+".......");
List<Goods> list= (List<Goods>) session.getAttribute("goodsList");
if (user!=null||list!=null){
filterChain.doFilter(servletRequest,servletResponse);
session.removeAttribute("user");
} else {
response.sendRedirect("login.jsp");
}
}
/**
*
*/
@Override
public void destroy() {
}
}