1.什么是过滤器?

过滤器,顾名思义就是起到过滤筛选作用的一种事物,只不过相较于现实生活中的过滤器,这里的过滤器过滤的对象是客户端访问的web资源,也可以理解为一种预处理手段,对资源进行拦截后,将其中我们认为的杂质(用户自己定义的)过滤,符合条件的放行,不符合的则拦截下来

2.filter配置

  • web.xml配置

<filter><filter-name>filter1</filter-name>//定义的filter名字<filter-class>work.filter.Filter1</filter-class>//filter类名(加上包名)</filter>​<filter-mapping><filter-name>filter1</filter-name><url-pattern>/*</url-pattern>//拦截的路径(一般使用/*,当然也可以根据自己的需要来自行配置)</filter-mapping>
  • 使用注解配置

@WebFilter(filterName = "Filterone",urlPatterns = "/*")

也可以简写为

@WebFilter("/*")

2.filter过滤器生命周期及其与生命周期相关的方法

Filter接口有三个方法,并且这个三个都是与Filter的生命相关的方法

destory():代表是filter销毁方法 当filter对象销毁时执行该方法

doFilter:代表filter执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法

init:代表filter对象初始化方法 filter对象创建时执行

public class Filterone implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {chain.doFilter(req, resp);}public void init(FilterConfig config) throws ServletException {}}

过滤器可以组成一个过滤器链,链中的每个过滤器都可以负责特定的操作和任务,客户端访问服务器的请求和响应在这些过滤器链之间传递,Filter接口用于调用过滤器中的一系列过滤器

3.过滤器的实例应用

3.1.解决乱码问题

配置过滤器在客户发送请求到达Servlet之前进行拦截后通过拦截器直接解决中文乱码问题

实现步骤:

  • 定义拦截器实现Filter接口
  • 配置拦截器(推荐使用注解配置,简单快捷)
  • 在doFilter()中设计乱码的解决代码
@WebFilter("/*")
public class FilterEnocding implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=UTF-8");chain.doFilter(req, resp);}public void init(FilterConfig config) throws ServletException {}

3.2.敏感词过滤

  • 对请求的数据进行敏感词汇过滤
  • 过滤敏感词替换为*

3.3.登录验证

  • 访问资源,验证是否已经登录
  • 如果已经登录直接放行
  • 如果未登录就挑战到登陆页面

登录selevet判断登录

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        req.setCharacterEncoding("utf-8");String username = req.getParameter("name");String password = req.getParameter("pwd");method me = new method();userinfo u = me.login(username,password);if (u!=null){req.getSession().setAttribute("u",u);resp.sendRedirect("show");
//            req.getRequestDispatcher("show").forward(req,resp);}else {resp.sendRedirect("orr.jsp");}}

进入主页面查询展示信息selevet,代码不再详细展示

        req.getRequestDispatcher("/fil/show.jsp").forward(req,resp);

过滤器配置以及过滤器内容

@WebFilter("/fil/*")//过滤器配置路径
public class Filterlogin implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {HttpServletRequest request = (HttpServletRequest)req;HttpServletResponse response = (HttpServletResponse)resp;userinfo u = (userinfo) req.getAttribute("u");if(u!=null){chain.doFilter(req, resp);//登录成功则继续向下执行进入展示页面}else {response.sendRedirect("../index.jsp");//失败则返回登录页面继续登录}}public void init(FilterConfig config) throws ServletException {}

Filter过滤器及其作用相关推荐

  1. Filter过滤器的作用和工作原理

    对于一个web应用程序来说,过滤器是处于web容器内的一个组件,它会过滤特定请求资源请求信息和响应信息.一个请求来到时,web容器会判断是否有过滤器与该信息资源相关联,如果有则交给过滤器处理,然后再交 ...

  2. Filter过滤器及其作用介绍

    一.过滤器Filter 1.filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进行逻辑处理 2.Filter的API详解 (1)fi ...

  3. Filter过滤器是什么?

    1.what filter过滤器的作用:拦截请求 2.why 网页上的某些操作或数据只有用户登录之后才能访问,用filter来过滤掉未登录的用户,只让已经登录的用户继续访问 3.for 利于数据的管理 ...

  4. Filter 过滤器的介绍及使用

    Filter过滤器 MySql的语法看这篇就够了,传送地址:MySql必知必会 JSP的使用看这篇就够了,传送地址:JSP必知必会 文章目录 Filter过滤器 一.Filter过滤器的介绍 二.Fi ...

  5. 使用filter过滤器实现简单用户登录验证(不用配置web.xml文件)

    一.filter过滤器的作用 如果想要获取中文字符,或者是显示提交的中文,就需要添加以下代码,来防止乱码的情况发生. request.setCharacterEncoding("utf-8& ...

  6. Java ---Filter过滤器

    Filter可以视作是servlet的加强版,主要用作对用户的请求进行预处理,或者对返回给客户端的结果进行再次加工,是一个典型的链式处理模式.本篇简单介绍filter的基本使用方法,主要涉及以下内容: ...

  7. Filter(过滤器)

    一.Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作. 1.Filter快速入门 1.1.步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方 ...

  8. 【Servlet】Filter过滤器详解、使用示例

    Filter过滤器讲解 定义 过滤器处于浏览器与servlet之间,是一个实现了 javax.servlet.Filter 接口的 Java 类 客户端发送的请求.服务器发送的资源,需要通过过滤器,才 ...

  9. SpringBoot中AOP实现落地——Filter(过滤器)、Intercepter(拦截器)、Aspect(Spring AOP)

    文章目录 一.一切要从Servlet说起 1.1什么是Servlet 1.2为什么需要Servlet 1.3Servlet如何响应用户请求 1.4Servlet与Tomcat处理请求的流程 1.5Se ...

  10. java nodefilter类,Java Servlet Filter过滤器概述

    Java Servlet Filter过滤器概述 Filter是Servlet的过滤器,是Servlet 2.3规范中新增加的一个功能,主要用于完成一些通用的操作,如编码的过滤.判断用户的登录状态等. ...

最新文章

  1. 【EF Code First】 一对一、一对多的多重关系配置
  2. 软件项目管理0707:要对客户发自真心的好
  3. adb指令禁用软件_三星等安卓手机续航差?禁用部分系统组件后提升明显
  4. python decorator模块_Python decorator module
  5. 辽宁大学计算机专业接收调剂,目前有计算机专业调剂通知的学校,不断更新—3月26日更新,新增辽宁大学等...
  6. 阿里巴巴代码平台架构的演进之路
  7. dubbo 自定义路由_Dubbo分层架构概述
  8. 如何快速启动MongoDB服务?
  9. 【java】理解和运用Java中的Lambda
  10. feign使用_【微服务】165:Feign的最佳使用方式
  11. 回文树 / 自动机模板
  12. Julia : HDF5、JLD2库、group、dataset
  13. java严格模式_es严格模式、对象和扩展。
  14. 马拦过河卒问题 (递推解法)
  15. APK 包名修改工具
  16. Hadoop HA_Yarn HA 集群的搭建
  17. linux下查看cpu和memery的个数
  18. 计算机二级的Word知识点,计算机二级word知识点「干货」
  19. java web excel导入数据库
  20. 亚马逊云科技 Community Builder 申请窗口开启

热门文章

  1. uniapp语音识别_uniapp语音识别
  2. 从程序员到项目经理(10):程序员加油站 --要执着但不要固执【转载】
  3. IDEA自动生成 Author 注释 签名
  4. 腾讯360再较量  谁是反垄断巨头
  5. Speedoffice(word)如何添加超链接
  6. html网页如何限制ip访问量,Nginx 限制IP访问频率
  7. VMware 8安装Mac OS X 10.8 Lion
  8. 测序深度的计算,你真的掌握了吗
  9. 英特尔400系列服务器芯片组,英特尔400系列芯片组似乎还不支持PCIe 4.0
  10. 英特尔芯片组系列 服务器,英特尔主板现在有几种架构,分别都是什么。都是对应什么系列CPU安装最好。说的越详细越好...