Java过滤器

您所在的位置:网站首页 java过滤器怎么实现 Java过滤器

Java过滤器

#Java过滤器| 来源: 网络整理| 查看: 265

过滤器:

如果想要使用过滤器,首先需要实现Filter类,并重写三个需要的方法:

init方法:    容器在创建当前过滤器的时候自动调用;

destroy方法:  容器在销毁当前过滤器的时候自动调用

doFilter方法:  过滤器的主要代码写在这个地方、

@WebFilter("/*") public class Filter01 implements Filter {

@Override

public void init(FilterConfig filterConfig) throws ServletException { }

@Override

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

@Override

public void destroy() { }

   过滤器一般用于登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换等等操作,便于代码重用,不必每个servlet中还要进行相应的操作。

在web.xml中配置过滤器。这里要谨记一条原则:在web.xml中,监听器>过滤器>servlet。也就是说web.xml中监听器配置在过滤器之前,过滤器配置在servlet之前,否则会出错。

chain.doFilter(req, resp);

这一行代表的是如果还有其他的过滤器就调用其它的过滤器,但是需要注意,这一行代码必须写在doFilter方法的最后面

guo'n

public void doFilter(ServletRequest arg0, ServletResponse arg1,             FilterChain arg2) throws IOException, ServletException {                  HttpServletRequest request=(HttpServletRequest) arg0;         HttpServletResponse response=(HttpServletResponse) arg1;         HttpSession session=request.getSession();                  String path=request.getRequestURI();                  Integer uid=(Integer)session.getAttribute("userid");                  if(path.indexOf("/login.jsp")>-1){//登录页面不过滤             arg2.doFilter(arg0, arg1);//递交给下一个过滤器             return;         }         if(path.indexOf("/register.jsp")>-1){//注册页面不过滤             arg2.doFilter(request, response);             return;         }                  if(uid!=null){//已经登录             arg2.doFilter(request, response);//放行,递交给下一个过滤器                      }else{             response.sendRedirect("login.jsp");         }

    }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3