JavaWeb——过滤器

一、过滤器介绍

1.什么是过滤器

过滤器(Filter)指的是一种用于处理HTTP请求或响应的组件,主要用于在请求或响应过程中拦截并对其进行修改、增强或限制。过滤器可以用来完成很多任务,例如:登录验证、字符编码转换、压缩响应数据、跨站点脚本防止等。过滤器可以针对所有请求或响应进行拦截,也可以根据URL、Servlet、JSP等条件进行拦截。在JavaEE中,过滤器是一个标准的Servlet规范组件。

 2.过滤器的作用

过滤器(Filter)可以用于对HTTP请求或响应进行拦截和处理,其主要作用有以下几个方面:

1. 权限控制:过滤器可以对用户访问进行权限控制,例如登录验证、身份认证等。

2. 数据校验:过滤器可以对用户提交的数据进行校验、过滤和转换,例如对表单数据进行验证、过滤敏感字符等。

3. 请求转发:过滤器可以根据请求的条件,对请求进行转发到不同的目标,例如根据URL中的参数、请求的Header信息等进行路由。

4. 统一处理:过滤器可以对一些通用的业务逻辑进行统一处理,例如字符编码的转换、HttpServletRequest对象的封装等。

5. 性能优化:过滤器可以对请求或响应进行性能优化,例如对响应进行压缩、请求缓存等。

总而言之,过滤器可以对请求或响应进行拦截和处理,从而实现对用户访问的控制和管理。

3.过滤器的原理 

二、 过滤器的使用

1.过滤所有(*) 

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")
public class FilterDemo implements Filter{
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

2.过滤所有后缀为jsp的文件

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("*.jsp")
public class FilterDemo implements Filter{
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

3.过滤一个文件夹下的所有文件

​​import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/pages/*")
public class FilterDemo implements Filter{
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

4.通过配置xml文件过滤

<filter>
        <filter-name>UserFilter</filter-name>
        <filter-class>com.org.filter.UserFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UserFilter</filter-name>
        <url-pattern>/pages/*</url-pattern>
    </filter-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值