Javaweb第五章

过滤器:

全称:Servlet过滤器   Servlet就是Servlet    Servlet过滤器就是Servlet过滤器

翻译:Filter

功能:客户端发请求给服务端。 服务端回响应给客户端   进行代码的处理。

用处: 最常见的编码过滤器   登录校验过滤器   等等
如何实现:

一般放在filter包下
如何创建一个Filter

1.创建一个类
2.实现Filter接口 注意是Servlet下的Filter接口
3.重写该接口下的所有方法分别是init(初始化) destory(消亡)  doFilter(过滤的相关代码)
4.添加注解 @WebFilter("/Xxx")   Xxx表示我要过滤哪些请求或响应  一般来说都写/*  表示过滤所有请求
5.写相关代码。
6.根据条件进行放行。通过方法内部提供的参数:filterChain 进行放行
客串知识点:
    过滤器又称拦截器   如果过滤器中没有写  “放行”  相关代码  项目将显示一个空白页面。
    所以正确的写法:  如果过滤成功就放行。  如果过滤失败就跳转到指定页面
 客串知识点2:
     一个项目中可以存在多个过滤器   那么就存在一个过滤器的优先级问题
     优先级的原则 也很简单:根据类名的首字母

客串知识点3:
         过滤器内部提供的request和response 是ServletRequest   ServletResponse

         但是Servlet提供的request和response 是HttpServletRequest   HttpServletResponse

         然后HttpServletRequest的request和HttpServletResponse的response的功能 是远多于:
         ServletRequest和ServletResponse的request和response

         所以如果该过滤器只需要实现低级功能 就无须转换。
         如果该过滤器需要实现高级功能就需要在方法的内部进行强转
          HttpServletRequest req = (HttpServletRequest)servletRequest;
例如:
package com.yyzy.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;


@WebFilter("/*")
public class AFilter 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("我是A");
        filterChain.doFilter(servletRequest,servletResponse);


    }

    @Override
    public void destroy() {

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值