在 Java Web 程序中,Servlet主要负责接收用户请求 HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回应HttpServletResponse反馈给用户。Servlet 可以设置初始化参数,供 Servlet 内部使用。一个 Servlet 类只会有一个实例,在它初始化时调用init()方法,销毁时调用destroy()方法。Servlet 需要在 web.xml 中配置(MyEclipse 中创建 Servlet 会自动配置),一个 Servlet 可以设置多个 URL 访问。Servlet 不是线程安全,因此要谨慎使用类变量。
- Java77
- 数据库44
- 计算机基础43
- 技术文章精选集25
- 分布式24
- AI 应用开发22
- 系统设计18
- 高性能15
- 框架13
- AI11
- 开发工具11
- 走近作者10
- 知识星球10
- 高可用10
- AI 编程实战9
- 面试准备9
- 开源项目8
- 计算机书籍7
- 走近项目5
- 代码质量4
- AI 编程技巧3
- AI 编程1
- 程序人生1
- Java面试指北1
设计模式 相关的面试题已经整理到了 PDF 手册中,你可以在我的公众号“JavaGuide”后台回复“PDF” 获取。

《设计模式》PDF 电子书内容概览:

为什么需要定时任务?
我们来看一下几个非常常见的业务场景:
- 某系统凌晨 1 点要进行数据备份。
- 某电商平台,用户下单半个小时未支付的情况下需要自动取消订单。
- 某媒体聚合平台,每 10 分钟动态抓取某某网站的数据为自己所用。
- 某博客平台,支持定时发送文章。
- 某基金平台,每晚定时计算用户当日收益情况并推送给用户最新的数据。
- ……
这些场景往往都要求我们在某个特定的时间去做某个事情,也就是定时或者延时去做某个事情。
- 定时任务:在指定时间点执行特定的任务,例如每天早上 8 点,每周一下午 3 点等。定时任务可以用来做一些周期性的工作,如数据备份,日志清理,报表生成等。
- 延时任务:一定的延迟时间后执行特定的任务,例如 10 分钟后,3 小时后等。延时任务可以用来做一些异步的工作,如订单取消,推送通知,红包撤回等。
原文地址:https://juejin.cn/post/7122014462181113887,JavaGuide 对本文进行了完善总结。
我有一个朋友做了一个小破站,现在要实现一个站内信 Web 消息推送的功能,对,就是下图这个小红点,一个很常用的功能。

系统设计基础专题关注后端开发里最容易被忽略、但长期影响最大的工程能力:接口怎么设计、代码怎么命名、坏味道怎么识别、测试怎么写、需求到交付的过程如何组织。
这些内容看起来不像缓存、消息队列、分库分表那样“硬核”,但它们决定了系统能不能被团队长期维护。
适合谁看
- 想系统补齐后端工程基础的开发者。
- 准备 RESTful API、代码质量、单元测试相关面试题的同学。
- 已经能完成业务开发,但想提升接口设计和代码可维护性的读者。
- 需要给团队制定接口规范、命名规范或测试规范的工程师。
大部分软件开发从业者,都会忽略软件开发中的一些最基础、最底层的一些概念。但是,这些软件开发的概念对于软件开发来说非常重要,就像是软件开发的基石一样。这也是我写这篇文章的原因。
何为软件工程?
1968 年 NATO(北大西洋公约组织)提出了软件危机(Software crisis)一词。同年,为了解决软件危机问题,“软件工程”的概念诞生了。一门叫做软件工程的学科也就应运而生。
随着时间的推移,软件工程这门学科也经历了一轮又一轮的完善,其中的一些核心内容比如软件开发模型越来越丰富实用!
认证授权与数据安全专题关注后端系统里非常基础、但出错成本很高的一条链路:用户如何登录、身份如何传递、权限如何判断、敏感数据如何保护、输入数据如何校验。
安全不是某一个框架或某一个注解能兜住的事情。它需要从认证、授权、传输、存储、展示、输入校验和审计等多个环节一起设计。
适合谁看
- 正在学习登录鉴权、权限系统和数据安全的后端开发者。
- 准备认证授权、JWT、SSO、RBAC、数据脱敏相关面试题的同学。
- 项目中需要设计后台权限、用户体系、敏感数据展示或数据校验方案的工程师。
- 已经用过 Spring Security、Sa-Token、Shiro 等框架,但想补齐底层概念的读者。
校招面试中,遇到大部分的候选者认证登录这块用的都是 JWT。提问 JWT 的概念性问题以及使用 JWT 的原因,基本都能回答一些,但当问到 JWT 存在的一些问题和解决方案时,只有一小部分候选者回答的还可以。
JWT 不是银弹,也有很多缺陷,很多时候并不是最优的选择。这篇文章,我们一起探讨一下 JWT 身份认证的优缺点以及常见问题的解决办法,来看看为什么很多人不再推荐使用 JWT 了。
关于 JWT 的基本概念介绍请看我写的这篇文章: JWT 基本概念详解。
认证 (Authentication) 和授权 (Authorization)的区别是什么?
这是一个绝大多数人都会混淆的问题。首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么。
说简单点就是:
- 认证 (Authentication): 你是谁。
- 授权 (Authorization): 你有权限干什么。
稍微正式点(啰嗦点)的说法就是:
