javaweb21

javaweb21,第1张

一、什么是过滤器:

过滤器实际上就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或Servlet处理

过滤器
@SuppressWarnings("all")
@WebFilter("/*") //设置过滤的规则
public class RoleFilter implements Filter {
    //此集合放不需要过滤的路径
    List paths=new ArrayList();

*存集合不用一个个设置
    //将路径放到列表中
    {
        paths.add("/index.jsp");
        paths.add("/tourists.jsp");
        paths.add("/login.do");
        paths.add("/exit.do");
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        //过滤器的所有 *** 作全部在这里完成
        HttpServletRequest request=(HttpServletRequest)req;
        HttpServletResponse response=(HttpServletResponse)resp;
        //获取当前请求的路径
        // http://localhost:8080/web21/index.jsp -> /index.jsp
        // http://localhost:8080/web21/exit.do -> /exit.do
        String path = request.getServletPath();
        //判断你当前访问的路径是否需要过滤 /index.jsp
        boolean f=false;
        for (String p : paths) {
            if(p.equals(path)){
                f=true;
                break;
            }
        }
        if(f){//当你的访问路径在列表中 我是不需要过滤的
            //让过滤器放行
            chain.doFilter(req,resp);
            return;//终止代码运行
        }
        //isLogin是在登录之后被放到session里面去
        Object isLogin = request.getSession().getAttribute("isLogin");
        if(isLogin == null){//没有登录
            //回去首页
            response.sendRedirect("index.jsp");
            return;
        }
        //让过滤器放行
        chain.doFilter(req,resp);
    }

}

什么是监听器:

Web监听器是一种能监听某个对象状态变化的组件,重点在于监听域对象

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/740229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存