WebAppContext
中可以注册多个 Servlet,每个 Servlet 负责处理不同的请求。具体来说:
-
请求映射:每个 Servlet 可以通过
url-pattern
进行映射,这样 Jetty 就能根据请求的 URL 决定将请求转发给哪个 Servlet。 -
不同的处理逻辑:不同的 Servlet 可以处理不同类型的请求,比如一个 Servlet 可能处理用户登录请求,而另一个 Servlet 可能处理数据查询请求。
-
ServletHolder:在
WebAppContext
中,Servlet 是通过ServletHolder
注册的,ServletHolder
存储 Servlet 的实例及其配置。 -
过滤器和监听器:除了 Servlet,
WebAppContext
还支持注册过滤器(Filter
)和监听器(Listener
),可以在请求处理过程中添加额外的逻辑。
这样,WebAppContext
提供了一个灵活的机制来处理多种请求,使得 Web 应用能够处理复杂的业务逻辑。
除了管理 Servlet,WebAppContext
还负责以下几个方面:
-
上下文配置:管理 Web 应用的配置信息,如
web.xml
文件、初始化参数、资源目录等。 -
资源查找:提供访问静态资源的功能,通过
getResource
方法查找和提供 Web 应用中的文件。 -
生命周期管理:控制 Web 应用的生命周期,包括启动、停止和重新加载等事件。
-
安全管理:配置和管理安全相关的设置,如身份验证、授权和安全约束。
-
会话管理:管理 HTTP 会话,包括创建、存储和销毁会话信息。
-
错误处理:处理应用中的错误情况,可以配置自定义错误页面。
通过这些功能,WebAppContext
提供了一个全面的框架来支持 Web 应用的开发与运行。