首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSP 热部署 源码解析

同时创建一个新的JasperLoader来重新加载这个有jsp编译好的class文件。 热部署原理 一个class只能由classloader加载一次,如果再次加载将会导致类冲突。...判断当前jsp页面的JspServletWrapper对象是否存在,如果不存在,则创建并存放到 jsps缓存中。...根据class文件(或java文件,通过一个参数可以选择)的最后修改时间,判断文件是否更新过,如果更新过, 删除之前编译过的文件信息 把jspLoader置空,需要重新创建一个ClassLoader,来达到热加载的目的...reload判断是否需要重新加载Servlet 如果需要重新加载,则先销毁之前的Servlet ctx.getJspLoader() 当前这个ClassLoader在上面已经赋值为null,在这个方法里又重新创建了一个...Classloader实例 初始化新创建的Servlet 把reload赋值为 false getJspLoader() 方法 ?

4.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kubelet源码走读(一)—— Pod如何被创建

    当我们创建一个pod的时候,我们肯定想知道kubelet是如何根据我们的`kubectl create -f xxx.yaml`请求来创建、启动一个pod。...然后是创建出来的pod到底是什么,和容器的关系是什么?最后pod创建成功,又是如何更新pod状态的? 一开始问题肯定是比较宏观的,在看代码过程中会进一步细化。...这里先带着我们的问题去 看源码: kubelet如何根据我们的create请求来启动一个pod? kubelet如何获取pod变化? 创建出来的pod到底是什么,和容器是什么关系?...pod创建成功,又是如何更新pod状态的? 如何利用日志走读kubelet源码 这里简述下我是如何通过kubelet日志来看代码的。 - 首先将kubelet日志级别设置为`--v=5`来重启。...找出第一次出现的地方,在源码中找到相应的日志,一级一级看,了解之前之后的大概行为。 走读源码 1、kubelet如何获取pod变化?

    3.2K02

    《一起读 kubernetes 源码》kubelet 如何创建 pod?

    前言 pod 是 k8s 调度的最小单位,也就是整个 k8s 的基础之一,那么如何创建 pod 就是我们今天的关键了。这也是为什么我将它放在第一章的原因。 前置知识 什么是 pod?...心路历程 想看 k8s 源码,我不知如何下手,肯定是挑最熟悉最基础的部分,pod 肯定就是其中之一。而且日常的使用也让我们更熟悉 pod 的生命周期,所以我准备从 pod 入手。...pod 创建完毕之后需要做通知或其他操作吗? 源码分析 寻码过程 由于是第一篇,我就把详细的寻找过程也写进来,给小白提供思路。可略过。...那么接下来的 UpdatePod 就“有你好看”了,通常第一次看源码容易迷失的大多数原因就来源于大量的代码被吓怕了。还是那句话,我是来看 pod 如何创建的。...pod 创建完毕之后需要做通知或其他操作吗? 没有,创建只管创建,职责很清晰。 额外扩展 下面这些,这些就是不看源码所很难了解到的内部细节了,虽然不影响整体理解,但可以作为额外扩展来学习一下。

    26511

    JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?

    文章目录 前言 一、JSP 文件编译流程原理 二、创建并运行待测试 JSP 页面 三、查找 JSP 编译文件输出位置 3.1、打开动态项目运行配置 3.2、查看 JSP 编译文件输出位置 3.3、查看...JSP 编译输出文件 四、JSP 编译输出 Servlet 的论证 五、访问 JSP 文件的流程 总结 前言 相信大家都了解,JSP 页面在请求的时候会先被 Tomcat 编译为 Servlet....class 结尾的中间字节码文件,最后再编译为机器能识别的二进制机器码文件,整体流程如下图所示: 二、创建并运行待测试 JSP 页面 我们先创建一个动态 Web 项目 JavaWebDemo_2020...,并创建好一个 JSP 页面 Demo01.jsp,在 Tomcat 服务器下运行一次。...还有建议大家养成一个好习惯:看源码!源码是一切!

    2.7K20

    pod创建源码分析

    接触kubernetes已经4年多了,不过多是停留在能够使用,对其原理、源码不是很熟悉。对于平常执行的命令,它背后执行的流程、逻辑也不是很清楚。所以,最近打算去看看k8s各模块的源码。...那么今天,就来简单说一说pod创建的源码吧。文章有错误的地方还请指正,轻喷。首先,k8s的源码在github上即可获取。本次我看的是1.21.3。另外,很多翻译都是直译或翻译软件翻译的。请谅解。...正文 1、k8s源码中针对pod的增删改查是在源码包/pkg/kubelet/kubelet.go中的syncLoop()进行。...handler.HandlePodAdditions(u.Pods) 4、HandlePodAdditions又是如何去执行创建pod的呢?主要有以下几个操作: 1..... // 创建临时容器 // 6. Create init containers. // 创建初始化容器 // 7.

    48620

    读完 RocketMQ 源码,我学会了如何优雅的创建线程

    这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。...1 创建单线程 首先我们先温习下常用的创建单线程的两种方式: 实现 Runnable 接口 继承 Thread 类 ▍一、实现 Runnable 接口 图中,MyRunnable 类实现了 Runnable...2 单线程抽象类 创建单线程的两种方式都很简单,但每次创建线程代码显得有点冗余,于是 RocketMQ 里实现了一个抽象类 ServiceThread 。...这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。 JDK中提供的 ThreadPoolExecutor 类,是我们最常使用的线程池类。...6 总结 本文是RocketMQ 系列文章的开篇,和朋友们简单聊聊 RocketMQ 源码里创建线程的技巧。

    47360

    读完 RocketMQ 源码,我学会了如何优雅的创建线程

    这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。...图片 1 创建单线程 首先我们先温习下常用的创建单线程的两种方式: 实现 Runnable 接口 继承 Thread 类 ▍一、实现 Runnable 接口 图片 图中,MyRunnable 类实现了...2 单线程抽象类 创建单线程的两种方式都很简单,但每次创建线程代码显得有点冗余,于是 RocketMQ 里实现了一个抽象类 ServiceThread 。...这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。 JDK中提供的 ThreadPoolExecutor 类,是我们最常使用的线程池类。...6 总结 本文是RocketMQ 系列文章的开篇,和朋友们简单聊聊 RocketMQ 源码里创建线程的技巧。

    26000

    SpringMvc 如何同时支持 Jsp 和 Json 接口?

    后端同学基本都会见过这种场景:在同一个工程中,有些页面使用jsp模版渲染,同时还有其他接口提供Json格式的返回值。为了同时支持这两种场景,我们一般是如何处理的呢?...其实非常简单: 1、在项目中为 SpringMvc 指定视图解析器 ViewResolver,并引入 jstl 和 apache-jsp 依赖,用于支持jsp页面的渲染。...为了加深印象,我们看看源码是怎么实现的(我们聚焦这两个处理器相关的代码,不再阐述SpringMvc处理的主线)。...源码参见 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter 类的getModelAndView...建议大家顺着源码调试一遍(包括将响应数据处理为 Json 的流程),以后遇到 @ResponseBody 注解后,能顺其自然地回想起相关的执行流程,跳出“它是用来将响应数据写入输出流”这样较为粗浅的认知

    1.1K30

    Spring bean 创建过程源码解析

    本文首发于个人公众号 Java 技术大杂烩,欢迎关注 前言 在上一篇文章 Spring 中 bean 注册的源码解析 中分析了 Spring 中 bean 的注册过程,就是把配置文件中配置的 bean...的信息加载到内存中,以 BeanDefinition对象的形式存放,该对象中存放了 bean 的相关属性,下面就以 debug 的形式一步步来看下 bean 是如何创建的。...真正的创建 bean 4.1 创建 bean 实例 4.1.1 工厂方法创建 4.1.2 带参数的构造方法创建 4.1.3 默认的构造方法创建 4.2 添加单例对象的工厂缓存...beanInstance; } 处理 lookup-method 和 replace-method 子标签 这两个标签虽然不常用,但是是很有用的,这里不再细说;在 Spring 中 bean 注册的源码解析...bean 的过程很复杂,分为很多步骤,下面再来看看这些步骤: 创建bean实例 创建 bean 的实例,会根据策略使用不同的创建方法,比如说 构造方法创建, 工厂方法创建,默认的构造方法创建等: ?

    2.6K41
    领券