IDEA中找不到javax.servlet.filter接口解决办法,以及过滤器filter的基础配置

发布于:2023-01-09 ⋅ 阅读:(615) ⋅ 点赞:(0)

前言,过滤器 - Filter
◆ 过滤器(Filter)是J2EE Servlet模块下的组件
◆ Filter的作用是对URL进行统一的拦截处理
◆ Filter通常用于应用程序层面进行全局处理

一、导入servlet包

1、选择file–project structure

在这里插入图片描述

2、点击Libraries–“+”–java

在这里插入图片描述

3、找到servlet-api工具包所在的位置

并选择在这里插入图片描述

4、点击2次ok

在这里插入图片描述
在这里插入图片描述

5、此时再使用接口Filter,就会看到servlet

在这里插入图片描述

二、filter的简单使用

1、重写方法

使用filter接口后,会出现红色的报错提醒“要导入方法”
这是因为使用filter必须对某些方法重写
在这里插入图片描述

选择OK即可

init是初始化
destroy是销毁
dofilter则是filter的核心,执行过滤的代码
在这里插入图片描述

2、dofilter方法的介绍

包含着3个参数
请求、响应、filter链
servletRequest
servletResponse
filterChain

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//最简单的dofilter语句
    System.out.println("过滤器已生效");
    filterChain.doFilter(servletRequest,servletResponse);
}

注意:在方法的结尾必须加上

filterChain.doFilter(servletRequest,servletResponse); }
意思是将请求和响应的内容随着过滤链,依次向后传递。
如果没有这句话,则无法被正常处理

3、配置形式:在web.xml中配置servlet标签

1)filter标签说明哪个类是过滤器,并在应用启动时自动加载
2)filter-mapping标签用于说明过滤器对URL应用的范围

  1. filter-name与上面filter中的名字对应
  2. url-pattern 说明过滤器作用的URL范围, /* 代表对所有URL进行过滤

这两部分标签写好后,过滤器就生效了

<filter>
<filter-name>filter名字</filter-name> 
<filter-class>所在的包的位置</filter-class> 
</filter>


 <filter-mapping> 
 <filter-name>filter名字</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping>

注解形式:在类中直接设定范围和名字

如果觉得在web.xml中配置比较麻烦,也可以采用注解的形式放在在使用接口的类中。

@WebFilter (filterName=“filter名”,urlPatterns=“/*”)

这个语句等同于上面两个标签的作用。

配置和注解的区别在于

1、配置形式维护性更好,适合应用全局过滤
2、注解形式开发体验更好,但是不能用于全局过滤,适用于小型项目敏捷开发

温馨提示💓

如果在运用时遇到问题,可以直接关注并私信我,发送报错问题,我看到后会第一时间回复~

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到