手写简易MVC – IOC
耦合 在软件系统中,层与层之间存在依赖关系,我们称之为耦合。 我们系统架构设计的一个原则是:高内聚低耦合。层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的。 在上一篇中...
手写简易MVC – 引入三层架构
什么是三层架构 在实际工作中,业务是很复杂的。为了更好的降低各层之间的 耦合度(系统的复杂度,在三层架构程序设计中,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下...
手写简易MVC-DispatcherServlet
这一篇不要过多的纠结代码质量,只要是思想。这一块不看对工作没有影响,但是为了往更高的方向发展,还是需要掌握的。 1. Servlet 优化 1.1 需求 假设我们有一个简易的水果店铺管理系统,对应的...
七、堆
堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心...
JDK环境导致MD5算法不一致问题
今天在跟第三方做接口联调,在验签时遇到一个问题,明明两边的加密算法一模一样,但是加密后却不一样。 加密算如下: import java.security.MessageDigest; /** * @Author shenxy * @Date 2023/...
六、本地方法接口和本地方法栈
本地方法接口 简单地讲,一个Native Methodt是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它...
idea下创建web项目
1. 新建 1. 打开idea,选择file->New->Project 2. 新建web项目 3. 新建index.html 4. 创建tomcat容器模板(创建过的可以跳过这一步) 5. 配置容器 默认打开index.html 6. 启动项目 2. 导入
Map.getOrDefault()
该方法是根据Map集合的key获取value,如果key不存在,就使用默认值。 代码演示: Map<String, Map> testMap = new HashMap<>(); Map<String,String> map = null; if(testMap.containsK...
Listener
1. 概念 监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。 Servlet监听器:Servlet规范中定义的一种特殊...
java中带参数的try(){}语法含义是什么
我们大多数用的是try{ }的形式 InputStream is = null; OutputStream os = null; try { //... } catch (IOException e) { //... }finally{ try { if(os!=null){ os.close(); } if(is!=null){ is...
Servlet 保存作用域
保存作用域有4个:page,request,session,application。 page:页面级别,现在已经不用 request:一次请求响应范围 session:一次会话范围有效 application:一次应用程序范围有效
SPI机制
SPI机制是什么 SPI是Service Provider Interface 的简称,是服务提供者接口的意思,又称服务发现机制。SPI是一种动态替换发现的机制,是一种思想。 SPI 实际上是“基于接口的编程+策略模式+配...
Servlet 继承关系
1. 继承关系 2. 方法关系 3. service方法 当有请求过来时,service方法会自动响应(tomcat容器调用)。 在HttpServlet会根据请求类型(get、post等)调用对应的方法(doGet、doPost) 由于HttpS...











