/1dreamGN/Blog

1dreamGN

瞬间

  • GowNinng

    之前和同事写了个联动封禁平台,告警日志处理速度很快,在护网中大大减少了人力,但是防火墙封禁是一个瓶颈,继续优化吧。

    吐槽

    0
    0
    2025-06-22
  • GowNinng

    Tomcat中这三个StandardContext、ApplicationContext、ServletContext都是干什么的?对这三个Context的描述可能还是有点不理解,用一个餐厅的比喻​​来理解这三个概念的区别和协作方式。

    🍽️ ​​场景:Tomcat 是一家餐厅​​

    1. ​​StandardContext:后厨管理系统​​

    • ​角色​​:餐厅的 ​​后厨总监​​(负责所有核心运营)。

    • ​功能​​:

      • 管理厨师(Servlet)、服务员(Filter)、食材(资源路径)。

      • 记录菜单(web.xml 配置)。

      • 控制餐厅的营业状态(启动/停止)。

    • ​特点​​:
      顾客看不到他,但他才是真正的“幕后大佬”。

    🔧 ​​例子​​:
    后厨总监决定:

    • 哪些厨师做哪些菜(URL 映射到 Servlet)。

    • 食材存放在哪里(WEB-INF/classesWEB-INF/lib)。

    2. ​​ApplicationContext:餐厅经理​​

    • ​角色​​:后厨总监的 ​​公开代言人​​,直接对接顾客需求。

    • ​功能​​:

      • 对外提供菜单(getResource())。

      • 接受顾客的特殊要求(动态注册 Filter/Servlet)。

      • 管理餐厅的公共信息(如今日特价=getInitParameter())。

    • ​特点​​:
      顾客以为经理就是“最高负责人”,实际他需要和后厨总监沟通。

    🎯 ​​例子​​:
    顾客问经理:

    • “有没有番茄酱?” → 经理去后厨系统查 (ctx.getResource("/ketchup.txt"))。

    • “我想定制一道菜” → 经理协调后厨动态添加 (ctx.addServlet())。

    3. ​​ServletContext:餐厅的菜单和客服电话​​

    • ​角色​​:顾客能直接接触的 ​​标准化接口​​。

    • ​功能​​:

      • 提供统一的菜单(所有顾客看到的都一样)。

      • 接受投诉或反馈(setAttribute("feedback", "汤太咸"))。

      • 提供外卖服务(静态资源访问)。

    • ​特点​​:
      无论后厨换厨师(Tomcat 升级)还是经理换人(ApplicationContext 实现变化),菜单格式(接口)不变。

    📞 ​​例子​​:
    顾客通过菜单(ServletContext):

    • 点一份披萨(访问 /pizza 路径)。

    • 查今日特价(ctx.getInitParameter("discount"))。

    🎭 ​​协作流程(顾客点餐)​​

    1. ​顾客​​(浏览器)打开菜单(ServletContext)点餐:/order?dish=pasta

    2. ​菜单​​ 将请求转给 ​​餐厅经理​​(ApplicationContext)。

    3. ​经理​​ 查询 ​​后厨系统​​(StandardContext):

      • 找到负责 pasta 的厨师(Servlet)。

      • 检查是否需要先过滤(如验证顾客权限 = Filter)。

    4. ​后厨总监​​ 调度厨师做菜,最终结果通过经理返回给顾客。

    杂记

    0
    0
    2025-06-19
  • GowNinng

    感觉记忆力变差了,刚记完的笔记过了一会儿就忘了。

    吐槽

    1
    0
    2025-04-18
  • GowNinng

    研究Java漏洞的利用链的时候,需要用到低版本Java,用的scoop里面没有低版本的1.8,于是自己Fork了Scoop Bucket Template,用这个写了JDK 8u41的下载模板,Bucket地址:https://github.com/1dreamGN/MyBucket

    开发

    0
    0
    2025-04-18