写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
Created by IntelliJ IDEA.
User: Jack
Date: 2022/1/3
Time: 9:08
To change this template use File | Settings | File Templates.
–%>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%
Object user = session.getAttribute(“user”);
if (user == null){
request.getRequestDispatcher(“/login.jsp”).forward(request,response);
return;
}
%>
完整的体验
2.1 编写AdminFilter实现接口
package com.caq.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class AdminFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
/**
-
拦截请求,然后做权限检查
-
@param servletRequest
-
@param servletResponse
-
@param filterChain
-
@throws IOException
-
@throws ServletException
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpSession session = httpServletRequest.getSession();
Object user = session.getAttribute(“user”);
//如果等于null,说明没有登录
if (user == null) {
servletRequest.getRequestDispatcher(“/login.jsp”).forward(servletRequest, servletResponse);
return;
} else {
//让程序继续往下访问用户的目标资源
filterChain.doFilter(servletRequest,servletResponse);
}
}
@Override
public void destroy() {
}
}
2.2在xml中配置访问路径
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns=“http://xmlns.jcp.org/xml/ns/javaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd”
version=“4.0”>
AdminFilter
com.caq.filter.AdminFilter
AdminFilter
/admin/*
RegistServlet
com.caq.servlet.RegistServlet
RegistServlet
/registServlet
KaptchaServlet
com.google.code.kaptcha.servlet.KaptchaServlet
KaptchaServlet
/kaptcha.jpg
2.3 打断点debug部署服务进行测试
可以看到首先经过的是filter过滤器
进行放行才会出现a.jsp的页面
Filter的生命周期包含几个方法
1、构造器方法
2、init初始化方法
第1,2步,在 web工程启动的时候执行( Filter已经创建)
3、doFilter过滤方法
第3步,每次拦截到请求,就会执行
4、destroy销毁
最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
截到请求,就会执行
4、destroy销毁
最后
手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友
[外链图片转存中…(img-jjUMraMn-1714855563011)]