【Java】Filter过滤器初识

      刚学习了过滤器Filter,感觉有必要记录一下,后面有空了回去完善一下,明天有点儿重要的事情要办,今晚得准备一下的,所以大概简略的写了下Filter的基本用法以及相关的代码注释。

      下面是过滤器内容,注意和Servlet的区别:

import javax.servlet.Filter

public class MyFilter implements Filter {

    private String filterParamValue;// 保存从web.xml中获取的过滤器参数

    // 复写的方法,销毁该过滤器时调用
    @Override
    public void destroy(){

    }

    // 过滤器过滤处理逻辑
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding(filterParamValue);// 设置编码格式

        // 。。 可以在页面相应之前进行用户登录与否的操作从而实现身份权限

        chain.doFilter(req, res);// 执行页面响应
    }

    // 过滤器初始化
    @Override
    public void init(FilterConfig cfg) throws ServletException {
        String s = cfg.getInitParameter("filterparam");// 通过初始化参数名来获取该参数的值
        if(s != null || (!"".equals(s.trim()))) {// 如果参数值不为空
            filterParamValue = s;// 获取参数
        } else {
            filterParamValue = "UTF-8";// 默认编码为UTF-8格式
        }
    }
}

      而这的下面是Filter在web.xml中的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         id="WebApp_ID" 
         version="3.0">

    <filter>
        <filter-name>MyFilter</filter-name>
        <filter-class>cn.com.dnyy.filter.MyFilter</filter-class><!-- 过滤器所在包目录 -->
        <init-param><!-- 设置初始化Filter的参数列表 -->
            <param-name>filterparam</param-name><!-- 参数名 -->
            <param-value>UTF-8</param-value><!-- 参数值 -->
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>MyFilter</filter-name><-- 两个filter-name要统一 -->
        <url-pattern>/*</url-pattern><!-- 所有页面均需要经过过滤器处理 -->
    </filter-mapping>
</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值