目录
1.Filter 什么是过滤器
①Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是: Servlet 程序、 Listener 监听器、 Filter 过滤器②Filter 过滤器它是 JavaEE 的规范。也就是接口③Filter 过滤器它的作用是: 拦截请求 ,过滤响应。
拦截请求常见的应用场景有:①权限检查②日记操作③事务管理……等等
2.Filter 的初体验
- 要求:在你的 web 工程下,有一个 admin 目录。这个 admin 目录下的所有资源(html 页面、jpg 图片、jsp 文件、等等)都必 须是用户登录之后才允许访问。
- 思考:根据之前我们学过内容。我们知道,用户登录之后都会把用户登录的信息保存到 Session 域中。所以要检查用户是否登录,可以判断 Session 中否包含有用户登录的信息即可!!!
对于jsp文件的访问,可以用如下代码实现
<%
Object user = session.getAttribute("user");
// 如果等于 null,说明还没有登录
if (user == null) {
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
%>
但是仍可以访问图片、HTML等资源,该如何设置相关权限来访问它们呢?
Filter
的工作流程图:
![](https://img-blog.csdnimg.cn/1268e5603dc04c68ba4479e750ac8a40.png)
Filter代码如下:
package com.atguigu.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/**
* @author 白村客
* @version //TODO
* @date 2022-05-31 14:52
* TODO
*/
public class AdminFilter implements Filte