当前位置:首页 > Web开发 > 正文

Servlet容器同样会在HTTP响应里设置一个Cookie

2024-03-31 Web开发

Web处事器事情道理概述

很多时候我们都想知道,web容器或web处事器(好比Tomcat或者jboss)是怎样事情的?它们是怎样措置惩罚惩罚来自全世界的http请求的?它们在幕后做了什么行动?Java Servlet API(例如ServletContext,ServletRequest,ServletResponse和Session这些类)在此中饰演了什么角色?这些都是web应用开发者或者想成为web应用开发者的人必需要知道的重要问题或观点。在这篇文章里,我将会尽量给出以上某些问题的答案。请集中精神!

文章章节:

·什么是web处事器、应用处事器和web容器?

·什么是Servlet?他们有什么感化?

·什么是ServletContext?它由谁创建?

·ServletRequest和ServletResponse从哪里进入生命周期?

·如何打点Session?知道cookie吗?

·如何确保线程安适?

什么是web处事器,应用处事器和web容器?

我先讨论web处事器和应用处事器。让我在用一句话概略讲讲:

“在过去它们是有区另外,但是这两个差此外分类慢慢地合并了,而如今在大多情况下和使用中可以把它们当作一个整体。”

在Mosaic浏览器(凡是被认为是第一个图形化的web浏览器)和超链接内容的初期,演变出了“web处事器”的新观点,它通过HTTP协议来供给静态页面内容和图片处事。在阿谁时候,大大都内容都是静态的,并且HTTP 1.0只是一种传送文件的方法。但在不久后web处事器供给了CGI成果。这意味着我们可以为每个web请求启动一个进程来孕育产生动态内容。此刻,HTTP协议已经很成熟了并且web处事器变得越发庞大,拥有了像缓存、安适和session打点这些附加成果。跟着技术的进一步成熟,我们从Kiva和NetDynamics学会了公司专属的基于Java的处事器端技术。这些技术最终全都融入到我们今天依然在大大都应用开发里使用的JSP中。

技术图片

以上是关于web处事器的。此刻我们来讨论应用处事器

在同一时期,应用处事器已经存在并成长很长一段时间了。一些公司为Unix开发了Tuxedo(面向事务的中间件)、TopEndEncina等产品,这些产品都是从类似IMS和CICS的主机应用打点和监控环境衍生而来的。大部分的这些产品都指定了“关闭的”产品专用通信协议来互连胖客户机(“fat” client)和处事器。在90年代,这些传统的应用处事器产品开始嵌入HTTP通信成果,刚开始要操作网关来实现。不久后它们之间的界线开始变得模糊了。

同时,web处事器越来越成熟,可以措置惩罚惩罚更高的负载、更多的并发和拥有更好的特性;应用处事器开始添加越来越多的基于HTTP的通信成果。所有的这些导致了web处事器与应用处事器的界线变得更窄了。

目前,“应用处事器”和“web处事器”之间的界线已经变得模糊不清了。但是人们还把这两个术语区分隔来,作为强调使用。

当有人说到“web处事器”时,你凡是要把它认为是以HTTP为核心、web UI为向导的应用。当有人说到“应用处事器”时,你可能想到“高负载、企业级特性、事务和行列队伍、多通道通信(HTTP和更多的协议)”。但此刻供给这些需求的根基上都是同一个产品。

以上就是关于web处事器和应用处事器的全部内容。此刻我们来看看第三个术语,即web容器。

技术图片

在Java方面,web容器一般是指Servlet容器。Servlet容器是与Java Servlet交互的web容器的组件。web容器卖力打点Servlet的生命周期、把URL映射到特定的Servlet、确保URL请求拥有正确的访谒权限和更多类似的处事。综合来看,Servlet容器就是用来运行你的Servlet和维护它的生命周期的运行环境。

什么是Servlet?他们有什么感化?

在Java里,Servlet使你能够编写按照请求动态生成内容的处事端组件。事实上,Servlet是一个在javax.servlet包里界说的接口。它为Servlet的生命周期声明了三个根基要领——init()、service()和destroy()。每个Servlet都要实现这些要领(在SDK里界说或者用户界说)并在它们的生命周期的特按时间由处事器来挪用这些要领。

类加载器通过懒加载(lazy-loading)或者预加载(eager loading)自动地把Servlet类加载到容器里。每个请求都拥有本身的线程,而一个Servlet东西可以同时为多个线程处事。当Servlet东西不再被使用时,它就会被JVM当做垃圾回收失。

懒加载的Servlet

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31531.html