Web阶段:第十八章:Filter过滤器
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-09-05 java锁:第二章:可重入锁和递归锁
2022-09-05 java锁:第一章:公平和非公平锁
2022-09-05 JVM:第二章:设计一个刚好在一秒堆溢出的程序
2022-09-05 JVM:第一章:类加载机制深度解析
2022-09-05 集合线程安全问题:第一章:集合类不安全之并发修改异常