肝了一个通宵!给学弟学妹们看的JavaWeb架构师学习路线

于是Sun公司发布Servlet,相当于运行在服务端的Java小程序,但Servlet无main方法,无法独立运行,因此必须把它部署到Servlet容器,由容器来实例化并调用Servlet。

而Tomcat和Jetty就是一个Servlet容器。为了方便使用,它们也具有HTTP服务器的功能,因此Tomcat或Jetty就是一个“HTTP服务器 + Servlet容器”,也叫Web容器:

  • HTTP 服务器负责处理 HTTP 请求(接收请求、返回请求结果)

  • Servlet 容器负责把 HTTP 请求分派给对应的 servlet 程序处理,并把结果返回给 HTTP 服务器

其他应用服务器比如JBoss和WebLogic,它们不仅仅有Servlet容器的功能,也包含EJB容器,是完整的Java EE应用服务器。从这个角度看,Tomcat和Jetty算是一个轻量级应用服务器。

微服务时代的我们更喜欢稳定、轻量级的应用服务器,最流行的就是SpringBoot应用程序用内嵌方式运行Servlet容器。

什么叫内嵌方式运行servlet容器呢?

你的程序比如SpringBoot直接调用Web容器的提供的API去创建一个Web容器(HTTP服务器和Servlet容器),同时你的程序注册一个Servlet到Servlet容器中,比如SpringMVC的DispatcherServlet,这样请求到达时,Servlet容器负责调用你的Servlet。

轻量级,是因为在微服务下,把一个大而全的单体应用,拆分成一个个功能单一的微服务,在这个过程中,服务数量大大增加,但为减少资源消耗,并且降低部署成本,我们希望运行服务的Web容器也是轻量级,Web容器本身应消耗较少的内存和CPU资源,并且由应用本身启动一个嵌入式的Web容器,而不是通过Web容器来部署和启动应用,这样可以降低应用部署的复杂度。

因此轻量级的Tomcat和Jetty就是一个很好的选择,并且Tomcat它本身也是Spring Boot默认的嵌入式Servlet容器。最新版本Tomcat和Jetty都支持Servlet 4.0规范。

该怎么学?

====================================================================

操作系统基础


像Java这种高级语言,其实都是对操作系统API的封装,上层应用包括Web容器都是通过操作系统来工作的,因此掌握相关的操作系统原理是我们深刻理解Web容器的基础。

对于Web容器来说,操作系统方面你应该掌握它的工作原理,比如

  • 什么是进程

  • 什么是内核

  • 什么是内核空间和用户空间

  • 进程间通信的方式

  • 进程和线程的区别

  • 线程同步的方式

  • 什么是虚拟内存

  • 内存分配的过程

  • 什么是I/O、什么是I/O模型、阻塞与非阻塞的区别、同步与异步的区别

  • 网络通信的原理

  • OSI七层网络模型以及TCP/IP、UDP和HTTP协议。

推荐阅读名著《UNIX环境高级编程》。

Java语法、JVM基础


推荐的经典书籍有

  • 《Java核心技术》

  • 《Java编程思想》

  • 《Java并发编程实战》

  • 《深入理解Java虚拟机 第三版》

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

image

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

image

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-HTD5b5BY-1720127127265)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值