Web阶段:第十八章:Filter过滤器

发布时间 2023-09-05 15:36:40作者: 忘川信使

Filter,什么是过滤器?
1.Filter过滤器是javaWeb的三大组件之一,
2.三大组件分别是:Servlet程序,Filter过滤器,Listener监听器。
3.Filter是接口。
4.Filter的作用是:拦截请求,过滤响应。

Filter的初体验
需求:在webContent目录下有一个admin目录。然后在这个目录下有html页面,jsp页面,jpg图片。
要求这个目录下所有的资源都必须登录之后才能访问。

我们可以在jsp页面中,通过判断,Session域中是否包含用户登录的信息。
如果Session有用户登录的信息,说明已经登录,允许访问。返回,则让页面跳转到登录页面。

在这里插入图片描述

<%
Object user = session.getAttribute(“user”);
// 用户没登录
if (user == null) {
request.getRequestDispatcher("/login.jsp").forward(request, response);
return;
}
%>
如何使用Filter来保持Admin下的资源,在登录之后才允许访问。

Filter的使用步骤:
1、编写一个类去实现Filter接口
2、实现doFilter拦截的方法。
3、到web.xml中去配置拦截的资源地址

AdminFilter的代码:

public class AdminFilter implements Filter {
/**
* doFilter方法在每次拦截到请求之后就会调用
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;

    //做拦截检查的工作
    Object user = httpRequest.getSession().getAttribute("user");
    // 用户没登录
    if (user == null) {
        request.getRequestDispatcher("/login.jsp").forward(request, response);
        return;
    } else {
        // 已经登录
        chain.doFilter(request, response);
    }
}

 

}

web.xml中的配置:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120716976