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