为了账号安全,请及时绑定邮箱和手机立即绑定

深入分析Java Web-Servlet工作原理

标签:
Java

前几篇已经详细介绍了 Java 的原理还有 JVM 的原理,但是一直没有去讲 Web ,也就是 Java 是如何与 Web 建立联系的,如果能将 Java 可以输出的内容,显示到网页上面, 或者将 Java 连接数据库,把数据库的内容输出到页面上,就是所谓的动态网站了。如果你已经学了HTML 标签,那么你应该知道,写好的网页文件,双击在浏览器打开,就可以看到页面了,在 Java 里有 扩展名为 .jsp 的文件,它可以写HTML标签,同时也可以嵌入 Java 代码实现 Java 与网页互动,但是 .jsp 页面是不能像普通的 .html 文件双击打开并显示的,需要一个“容器”,比如 Tomcat 也就是说我们想查看 .jsp 的真实面貌就要通过 Tomcat 才能看到,下面来讲讲 Tomcat 里 Servlet 容器是如何工作的。

Servlet

Servlet(Server Applet),全称Java Servlet,未有中文译文。 是用Java编写的服务器端程序。 其主要功能在于交互式地浏览和修改数据,生成动态Web内容。
以Tomcat 为例来介绍 Servlet 容器是如何管理 Servlet 的。

Tomcat 容器模型

图片描述
一个Context 对应一个 Web 工程,也就是我们 Tomcat 文件夹里的 webapps 放入 Web 工程。

Servlet 容器的启动过程

图片描述

重点关注 StandardContext 容器启动过程

init 方法主要完成以下工作

  • 创建用于解析 XML 配置文件的 contextDigester 对象。
  • 读取默认的 context.xml 配置文件,如果存在则解析它。
  • 读取默认的 Host 配置文件,如果存在则解析它。
  • 读取默认的 Context 自身的配置文件,如果存在则解析它。
  • 设置 Context 的 DocBase。

ContextConfig 的 init 方法完成后,Context 容器就会执行 startInternal 方法,这个方法的启动逻辑比较复杂,主要包括以下几部分。

  • 创建读取资源文件对象。
  • 创建 ClassLoader 对象。
  • 设置应用的工作目录。
  • 启动相关的辅助类,如 logger、realm、resources 等。
  • 修改启动状态,通知感兴趣的观察者(Web 应用的配置)
  • 子容器的初始化。
  • 获取 ServletContext 并设置必要的参数。
  • 初始化“load on startup” 的 Servlet。
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
30
获赞与收藏
154

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消